»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
sisar replied to Mr Estarde's mail on p6l 00:05
I did not feel any compeelling need to reply, but...
Just wanted to see if I can articulate some point properly :) 00:06
I hope I did convey the right message and feel of the perl6 community.
s/feel/spirit
oops... its Estrade and not Estarde :) 00:11
dalek kudo/qbootstrap: cc75bfd | jnthn++ | src/core/Temporal.pm:
Twiddle whitespace around stub syntax; there's actually a bug lingering that causes this to be needed. This does mean we fully parse CORE.setting, though, just blowing up at CHECK time because something causes generation of calls to infix:<> in a few places.
00:12
kudo/qbootstrap: dccd9cf | jnthn++ | src/Perl6/Actions.pm:
Avoid a double-make (but doesn't fix anything).
kudo/qbootstrap: d7e3797 | jnthn++ | src/Perl6/Actions.pm:
Apply a tweak also made in HLL::Actions last night; this clears up a vast number of the spectest failures as a result of switching to QRegex for parsing Perl 6 source. O(30) test files have failures that need investigating.
00:13 am0c joined
sisar jnthn: this 'qbootstrap' changes, what will be the user visible changes ? speed? new features? 00:14
ditto for 'toqast'. What are the user-visible changes ? 00:15
00:15 DarthGandalf left
sorear it was mentioned earlier that qfoo was needed for macros. 00:18
jnthn sisar: Both are primarily "enabling" changes. They'll probably bring some direct improvements, but they are more about being a base for another round of user-facing stuff.
sisar: masak's macros work, as sorear mentions, wants toqast to get done. 00:19
00:19 DarthGandalf joined, DarthGandalf left, DarthGandalf joined
sisar jnthn: right. masak++'s Q2 work on macros, IIRC. 00:19
00:19 lichtkind left
jnthn sisar: Further STD convergence should also be possible, now we have properer LTM to hand. 00:20
sisar wow. STD coming to Rakudo !
jnthn Well, it's a step by step thing :) 00:21
"Just use STD" is not the answer.
sisar jnthn: what will happen to to Rakudo's grammar? will it be merged with STD ?
or replaced by STD?
sorear Rakudo's grammar is a member of the STD family.
jnthn sisar: Rakudo's grammar will continue to evolve, getting closer to STD where it makes sense, and remaining distinct where it makes sense.
sorear It has been for several years.
Rakudo's grammar was replaced with STD during the 'ng/alpha' branch switch. 00:22
TimToady's copy of STD is a dedicated syntax checker and is not useful for compilers.
Rakudo's copy is the other way around.
sisar what about Niecza? 00:23
jnthn Well, Rakudo's copy could learn some things from STD. :)
If STD wants to stay as a syntax checker, it probably doesn't have such a pressing need to learn from Rakudo though :)
The main thing STD does a LOT better than Rakudo that I do care about is the errors.
One other benefit of qbootstrap is it switches Rakudo's parser onto a grammar engine with a higher bus number. 00:24
sisar yes, it gives better error than just "Confused" :)
jnthn Right. :) Rakudo often does too, but not often enough. 00:26
From my point of view as somebody working on this stuff, it's pretty clear that I can work on a codebase written in NQP than I can work on one written in an intermediate langauge, also.
diakopter NQP *better than? 00:27
jnthn er, yes. :)
00:34 japhb left 00:47 sisar left 01:01 aesundstrom joined
diakopter A "Chat with the Perl 6 Community in your web browser" link needs to be very prominent on every page on perl6.org 01:14
it is way too buried currently
01:19 leprevost joined 01:34 fgomez joined 01:37 whiteknight joined, japhb joined, whiteknight is now known as Guest4345 01:41 JimmyZ_ joined 01:43 Chillance left
JimmyZ_ hmm, binary search in NQP is dead again with fea45a0b23e994634d7148af65521faa7555fcef 01:50
jnthn Feel free to resurect it... ;) 01:55
Blog post! 6guts.wordpress.com/2012/05/26/swit...-6-source/ 01:56
And now, sleeeeeeep o/
diakopter jnthn: did you do speed comparisions
PerlJam jnthn: wait! I have a quick question
jnthn diakopter: It's slower, but it's doing at least two silly things. 01:57
PerlJam jnthn: IS there a way to say nextsame in Perl6::RegexActions?
jnthn diakopter: If you profile the NQP tests, about 50% of the time is doing work that should happen at compile time, but happens every runtime.
PerlJam: NQP doesn't implement nextsame, but if you know what method you want to call, just look it up explicitly. 01:58
PerlJam you mean call QRegex::P6Regex::Actions::sub-I-want-to-call ?
or, lookup how? 01:59
jnthn No, it's a method, not a sub
.HOW.find_method
PerlJam yeah, okay.
jnthn pir::find_method__PPs(QRegex::P6Regex::Actions, 'meth_name') also works 02:00
Will get replaced with an nqp:: later
But feel free to use that for now
OK, really sleeping :) 02:01
PerlJam gotcha. thanks
g'night jnthn!
jnthn 'night
02:02 japhb left, autark left 02:03 jrockway left
PerlJam reads jnthn's blog 02:03
02:04 japhb joined 02:10 wolfman2000 left 02:13 stocks29 joined 02:15 JimmyZ_ left, JimmyZ_ joined 02:23 wolfman2000 joined 02:33 PacoAir left 02:34 jaldhar joined 02:35 araujo left 02:43 wolfman2000 left 02:53 tokuhirom joined 02:54 wolfman2000 joined 02:55 AndChat|524400 joined, _jaldhar joined, jaldhar left 02:57 AndChat-524400 joined, AndChat|524400 left 02:58 stocks29 left, AndChat|524400 joined, thou joined 03:00 JimmyZ_ left 03:01 AndChat-524400 left 03:03 am0c left 03:14 raiph joined
raiph hi all. did anyone figure out who controls @perl6 on twitter? 03:15
03:22 Guest4345 left 03:50 aesundstrom left 03:57 DreamingInCode left 04:03 wolfman2000 left 04:09 fgomez left 04:10 fgomez joined
moritz \o 04:32
jnthn++ # blog
jnthn++ # qbootstrap
04:33 xinming_ joined 04:35 xinming left 04:49 wolfman2000 joined 04:51 jaldhar_ joined 04:55 _jaldhar left 04:57 AndChat|524400 left 04:58 thou left 05:08 stephenlb left 05:10 jaldhar_ left
sorear raiph: I am not sure anyone looked. 05:13
05:16 wolfman2000 left 05:22 jaldhar_ joined 05:26 sisar joined
raiph sorear++ # "erm, that didn't come out right" (during discussion with pmichaud) 05:30
sisar: o/ 05:31
sisar: edited wiki/module page
sorear mm, wikis?
raiph: how go things in your corner of perl6-land? 05:32
moritz it seems that many of the remaining rakudo/qbootstrap failures are related to new operators 05:37
raiph sorear: interested in the p6 marketing challenge 05:38
sisar raiph: \o 05:43
raiph sorear: i've been lurking (occasionally saying/doing something very small) since 2000
sisar raiph++
I like to think that the section "What does this actually mean for Rakudo end users?" in jnthn++'s blog is just there because/for me :) 05:46
raiph sorear: i think p6 is about 2 years off being robust enough to begin to really take off 05:47
05:47 JimmyZ_ joined
JimmyZ_ moritz: I pull a request to nqp 05:47
sisar raiph: please add to wiki.perl6.org/.pm and wiki.perl6.org/.pl too :) 05:48
05:49 fgomez left, fgomez joined
moritz JimmyZ_: yes, I've seen it, thanks 05:50
JimmyZ_ :)
moritz JimmyZ_: but I'm pretty sure there's something creepy going on which caused other changes to be lost too
JimmyZ_: and I'd rather find a way to restore them all, instead of restoring them piece by piece 05:51
JimmyZ_ moritz: great
sisar a line from Perl5 docs: "All Perl module files have the extension .pm. The use operator assumes this so you don't have to spell out "Module.pm" in quotes." Is this true for Perl 6 too? 05:52
moritz sisar: no, we also allow .pm6
sisar moritz: and the rest of it?
moritz (perl 5 also allows .pmc or so, iirc)
the rest is also vaguely true 05:53
I think we allow some more freedom in the file name
ie you can write MyModule.2.pm to and use MyModule; finds it 05:54
that's one of the concessions to allow multiple version of the same module
phenny: tell jnthn there seems to be something wrong with commit fea45a0b23e994634d7148af65521faa7555fcef in nqp, "Collapse QHLL back into HLL.". Some of those changes look backwards 05:56
phenny moritz: I'll pass that on when jnthn is around.
05:56 baest_ is now known as baest
raiph jnthn++ # great hacker 06:00
jnthn++ # great blogger
06:04 localhost joined 06:06 localhost left
sorear cool wiki. 06:12
raiph sorear: haskell 06:13
sorear raiph: ?
raiph the wiki at wiki.perl6.org uses haskell 06:14
sorear so what?
I am just so so so so glad to kiss SocialText goodbye
raiph i was guessing your "cool wiki" comment was about wiki.perl6.org, and given your haskell connections thought i'd mention that (in case u didn't know) 06:16
i don't hate anything, but if i did, SocialText would be high on the list 06:17
sorear s/SocialText/the TPF wiki/ 06:19
moritz so, who wants to port stuff rom the TPF wiki to wiki.perl6.org? 06:21
sisar moritz: i'm already considering it :)
sorear license check? 06:22
sisar huh ? is there a license? 06:23
oh here it is: www.perlfoundation.org/perl6/index....nd_license 06:25
sorear sisar: you need to check that first.
sisar: TPF is hosted in the US, I am fairly sure, and in the US (actually, most contries, all signatories of the 1984 Berne Convention), no license = everything is forbidden 06:26
sisar hmm, i guess here forgiveness > permission does not apply :p 06:28
moritz except that "everything is forbidden" doesn't work for wikis at all 06:30
raiph both links in the license text are broken
so, formally, go by the text: "same (always latest) license(s) used by the Perl 6 /src branch of the Pugs trunk." 06:31
and "See the "GPL-2", "Artistic-2.0b5", and "MIT" files" 06:32
sisar well, what did litchkind++ determine about the license issues before starting the tablets.perl.org ?
s/perl/perl6 06:33
moritz but whiche of them? or a conjunction? dijunction?
sisar: he wrote the original tablets on the wiki himself
sisar: so he was free to use any license he wanted
sisar oh !
moritz sisar: anyway, all of these licenses allow copying the stuff over to a new location 06:34
sisar well, lets see. The wiki has 244 pages in total. Which of them are worth porting? some may be important for historical context, but not our top priority. 06:36
many are short biographies of Perl 6 hackers++. Which again are not high priority. 06:37
raiph informally, what moritz says
sisar many articles are proper nouns, like Pugs, November, v6, NQP, etc. which I think we need a wiki page for. 06:38
06:39 fglock joined
fglock o/ 06:39
sisar Hmm, making small wiki pages for all the nouns is a good idea to begin with.
fglock: \o 06:40
fglock I've been thinking about a problem with Perlito, it is getting too big for the browser (over 500k bytes), 06:42
I think it needs two versions, one big and one small 06:43
I'm thinking about reusing an existing "big" compiler for Perlito6-big 06:44
I'll keep working on Perlito5-big
raiph fglock: "existing big compiler" -- as in one of rakudo, niecza, pugs? 06:47
fglock yes, and also STD + C code (ruoso & pmurias project) 06:48
but I need to separate compiler from code-emitter, because Perlito is bootstrapped in multiple backends 06:49
alternately, one of these projecs would slurp Perlito and get a Perl5 compiler 06:51
projects
sorear: how about a "niecza5" :) 06:52
raiph is STD + C (ruoso & pmurias) still SMOP, or is there a newer project? 06:54
moritz I don't think there is a project at all at the moment
sorear fglock: do elaborate
fglock: I've toyed with the idea of stealing your p5 compiler for niecza, but it's way far down my TODO 06:55
06:57 b1rkh0ff joined
fglock raiph: (I've looked up) SMOP is the runtime; Mildew is the compiler 06:59
sorear fglock: how much of a living project is Mildew/SMOP ?
I tend to think SMOP should stay dead; diakopter et al's 6model/c is the new SMOP 07:00
fglock sorear: I just had this idea, I didn't think about the details 07:04
let's see, 07:05
there would be 4 compilers
niecza is p6-big, perlito6 is p6-small
sorear fglock: what is the distinction between -big and -small ? 07:06
fglock perlito5 is p5-small, and (new) is perl5-big
sorear would any of these support eval?
fglock "-small" runs the compiler in the browser, it is small in size
all of them support eval
-small is used for "eval in the browser" 07:07
sorear I am not sure how anything which includes a full Javascript Perl 6 compiler can claim to be small. 07:09
fglock that's the point, p6-small is not full Perl6, but "as much as we can put in 500k bytes" 07:12
moritz NQPerlito :-)
fglock where 500k is $whatever-size
or nqp-javascript, yes 07:13
sorear mm.
well, if I were doing that
the first thing I would kill is gather/take
which has massive ripple effects to the point that the two would effectively no longer share code
niecza is also not likely to support running on Javascript any time soon 07:14
fglock that's the point, the "big" compilers would not likely run in javascript 07:16
07:16 JimmyZ_ left
fglock but you can emit code that runs in javascript, and use perlito6 for eval() 07:16
07:17 mucker left
sorear mmh. 07:19
fglock hmm - this is different from my initial idea already
the initial idea was having all compilers fully retargetable 07:20
dalek ecza: 69f2cee | sorear++ | lib/ (2 files):
A scheme for serializing CLR wrappers (fixes #117)

Based on the generic reference serialization scheme. Not foolproof; attempting to serialize a reference to a method will still blow up.
07:24
sisar p6eval bot, you now have a wikipage for yourself at wiki.perl6.org/p6eval. It explains how to push your buttons, or how not to push them too much :p 07:28
Who the 'maintainer' for p6eval ?
diakopter moritz & sorear
sisar diakopter: thanks. 07:29
fglock btw, I was looking into running STD with perlito5, that would be cool because you could have STD in the browser 07:30
moritz r: say ''
p6eval rakudo 4904b0: OUTPUT«␤»
fglock it's difficult because STD uses a lot of modules
sorear down to 13 open niecza bugs. of these, 4 I can't reproduce, 5 are arguably not bugs at all 07:31
fglock: at one point ca. Jan 2011 I had STD running on Niecza. I could get that working again, and then it might be easier to port that to perlito6 07:32
it might be easier insofar as it uses no modules 07:33
moritz \o/ that wiki actually merges 07:35
sorear the reproducable really-bugs in niecza right now are #122 No 'Failure', #103 Disambiguation of foo and &foo not fully concordant with spec, #119 no rx:P5, and #87 [*]() gives wrong answer
moritz: merges?
moritz sorear: when two different edits occur in parallel 07:36
sorear cool
moritz when I submitted my changes, it said "automerged with $sha1, please review and save" or something like that 07:37
sisar moritz: cool. When i looked at the history, I was wondering why there was no edit conflict.
moritz of course it would have been even more awesome if it had actually shown me what changes were merged in. But it's still better than socialtext, which said "haha, somebody else was faster, you're screwed" 07:38
sorear the one thing I definitely plan to do with niecza before release is add OP_NEXTSTATE
moritz sorear: it seems the link you added isn't parsed as a link
sorry, meant sisar 07:39
mist ab
sisar moritz: fixed. It needs empty parens after the ] 07:40
fglock alternative idea: there is no perlito6-big; perlito5-big is written in perl6 and run in any existing perl6 compiler 07:43
and perlito5-small is used to implement client-side eval() 07:45
sisar std: say "Hello world"; 07:47
p6eval std 8632387: OUTPUT«ok 00:00 40m␤»
sisar what does the '40m' signify ? 07:48
07:50 araujo joined
sorear sisar: Peak memory usage in megabytes 07:50
sisar it took 40 megabytes to parse that ?
oh wait, or is it 40 milli-megabytes ? 07:51
m ~~ 'milli' 07:52
raiph sisar++ # p6eval wiki page 07:56
sorear sisar: it took 40 megabytes to parse that, including the fixed overhead of loading libc.so, libperl.so, Moose & friends, STD itself ... 07:57
sisar afk 07:59
08:02 sergot joined
sergot hi o/ 08:02
:)
sorear o/ sergot 08:06
moritz we could remove that part of the output; it's pretty much always 40m these days 08:07
fglock is there any prototype impl of using local languages like "use v5" or "use Perl5" in perl6? 08:08
tadzik wow, that was an impressive coding spree 08:19
jnthn++
sorear fglock: in ways, yes. modules can locally change the grammar (by exporting operators) 08:23
fglock: all the necessary grammar knobs for 'use v5' exist in niecza today. All I need is a parser and a compiler and runtime support. :) 08:25
fglock: niecza allows trapping into low-level code using Q:CgOp { ... }; it would have been just as easy to make the syntax use CgOp; ...
fglock would this work? multi eval ($str, lang => 'Perl5') { ... } 08:29
sorear no, syntax in declarators needs to be :$lang = 'Perl5' 08:31
I mean signatures
also, that is wrong - defautl language for eval should be perl6
tadzik as long as this is a Perl 6 compiler :) 08:32
fglock re exporting operators, I think the changes would be bigger than that (sigil variance, barewords)
tadzik oh wait, nvm
fglock sorear: that's why I declared "multi eval"
to specialize for perl5
moritz then you probably want
multi eval($str, :$lang! where 'Perl5') { } 08:33
raiph anyone else like the term metaDSL as much as I do? 08:37
sorear fglock: = declares a default parameter value 08:38
it doesn't specializxe.
fglock perl6: multi eval($str, :$lang! where 'Perl5') { say "I am '$str' in $lang!" }; eval(:lang<Perl5>, "hello, World!\n") 08:39
p6eval rakudo 4904b0, niecza v17-29-g69f2cee: OUTPUT«I am 'hello, World!␤' in Perl5!␤»
..pugs: OUTPUT«*** ␤ Unexpected "where"␤ expecting trait, "=", default value, "-->" or ")"␤ at /tmp/MWgSYzbUsW line 1, column 26␤»
sorear perhaps better written as :lang("Perl5")
avoids binding a useless name
fglock sorear: you mean instead of :lang<Perl5> ? 08:40
sorear no, I mean instead of :$lang! where 'Perl5'
raiph (for attempting to explain what's special about Perl 6 and contrast it with less high level langs, eg python or perl5, and more high level langs, eg J or lisp) 08:41
fglock perl6: multi eval($str, :lang("Perl5")) { say "I am '$str' in $lang!" }; eval(:lang<Perl5>, "hello, World!\n")
p6eval niecza v17-29-g69f2cee: OUTPUT«===SORRY!===␤␤Malformed parameter at /tmp/Sa7cTZLyPQ line 1:␤------> multi eval($str, ⏏:lang("Perl5")) { say "I am '$str' in $l␤␤Parse failed␤␤»
..pugs: OUTPUT«*** ␤ Unexpected "lang"␤ expecting space or ")"␤ at /tmp/BmZZU34saf line 1, column 19␤»
..rakudo 4904b0: OUTPUT«===SORRY!===␤Malformed parameter␤at /tmp/qwLxGR6Y6p:1␤»
sorear raiph: metaDSL sounds like someone trying to be buzzword-compliant and would make me LESS likely to try the referenced thing.
fglock: ah, doesn't work, sorry 08:42
fglock I have a starting point :)
moritz++ 08:43
raiph sorear: troo 08:44
08:47 grondilu joined
grondilu when I test zavolaj's module 'NativeCall', I get : Cannot locate symbol 'Argless' in native library '' 08:48
this is after running perl6 -I. t/01-argless.t in zavolaj directory. 08:49
p6: class Foo { has Str $.s; method append($x) { $.s ~= $x } }; my Foo $foo .= new; $foo.append: "bar"; 08:54
p6eval rakudo 4904b0: OUTPUT«Cannot assign to a readonly variable or a value␤ in block <anon> at src/gen/CORE.setting:11187␤ in method append at /tmp/J2LKimZVNE:1␤ in block <anon> at /tmp/J2LKimZVNE:1␤␤»
..pugs, niecza v17-29-g69f2cee: ( no output )
grondilu p6: $_ = Buf.new: ^2; say $_ ~ .subbuf: 0, 1 08:55
p6eval niecza v17-29-g69f2cee: OUTPUT«===SORRY!===␤␤Undeclared name:␤ 'Buf' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1364 (die @ 3) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 33) ␤ at /home/p6…
..rakudo 4904b0: OUTPUT«No such method 'get_string' for invocant of type 'String'␤ in sub infix:<~> at src/gen/CORE.setting:6811␤ in block <anon> at /tmp/8XPIvidyb9:1␤␤»
..pugs: OUTPUT«*** No such subroutine: "&Buf"␤ at /tmp/sEXZdeD8BD line 1, column 1-17␤»
08:55 birdwindupbird joined
grondilu niecza: say Buf 08:55
p6eval niecza v17-29-g69f2cee: OUTPUT«===SORRY!===␤␤Undeclared name:␤ 'Buf' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1364 (die @ 3) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 33) ␤ at /home/p6…
grondilu ?? 08:56
moritz grondilu: niecza doesn't have Buf.
r: $_ = Buf.new: ^2; .say 08:57
p6eval rakudo 4904b0: OUTPUT«Buf:0x<00 01>␤»
grondilu p6: (class { has $.x; multi method new { self.new: :x(42) } }).new; 09:00
p6eval rakudo 4904b0: OUTPUT«(timeout)»
..niecza v17-29-g69f2cee: OUTPUT«Unhandled exception: Cannot call new; none of these signatures match:␤ ANON, Any␤ at /tmp/O9D9ZHNY_b line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3861 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3862 (module-CORE…
..pugs: OUTPUT«pugs: *** Can't modify constant item: VUndef␤ at /tmp/ENKSA7bVKv line 1, column 1␤»
fglock do you think the eval() idea is reasonable? 09:01
masak 早上好,#perl6的人。 09:02
fglock (plural "you")
sorear fglock: I don't understand the eval idea
fglock eval calls the p5-to-p6 compiler
buubot_backup fglock: ERROR: Can't locate object method "p6" via package "compiler" (perhaps you forgot to load "compiler"?) at (eval 20) line 1.
sorear masak: good morning #perl6 people?
fglock buubot_backup: it's not yet implemented :) 09:03
buubot_backup fglock: Couldn't match input.
fglock no problem :)
grondilu Anyone about this zavolaj error? «Cannot locate symbol 'Argless' in native library ''» 09:04
fglock sorear: eval() calls the p5-to-p6 compiler; perlito5 is compiled to p6 and eval() calls it 09:05
tadzik grondilu: what platform is that?
sorear grondilu: you've told zavolaj to look for a symbol named Argless, and it doesn't exist.
fglock and this works both in rakudo and niecza, it seems
grondilu intel 09:06
masak sorear: aye. sorear++
tadzik Linux, OSX?
grondilu Linux
tadzik how fresh is your Rakudo?
grondilu Linux blacky 3.3-6.slh.1-aptosid-686 #1 SMP PREEMPT Sun May 13 00:35:55 UTC 2012 i686 GNU/Linux
tadzik: quite fresh
sorear personally I suspect grondilu is misusing zavolaj
masak reads the "Perl 6 name of the rose" thread, and finds that moritz++ had already written what he meant to add 09:07
grondilu This is perl6 version 2012.05-45-g5274a37 built on parrot 4.4.0 revision RELEASE_4_4_0
sorear look for occurences of Argless in your source code
copy them here
tell us what you mean
I think you have incorrectly entered something 09:08
grondilu The Argless is in the test file. I didn't write it.
tadzik hmm
there were issues with that, but they're long gone
grondilu sub Argless() is native('01-argless') { * }
tadzik grondilu: Zavolaj is fresh too, I guess?
grondilu: './01-argless' will probably fix this 09:09
grondilu from rakudo-star-2012.04
tadzik hmm
can you check if add ./ will fix this? 09:10
grondilu it didn't. I'm trying ./t/ 09:11
masak japhb, jnthn: yes, I was probably thinking of cold-cache startup time for Moose.
grondilu nope, didn't fix it.
Hang, there was also 01-argless in a compile_test_lib call. 09:12
tadzik grondilu: well, I'm afraid it's a matter of old Rakudo/Zavolaj
I remember such an issue on linux, and it's been fixed a while ago
dalek ecza: 6833fdb | sorear++ | / (5 files):
Add checkpoints to generated code to prevent the "warnings and some errors slide to a nearby call" failure (#120)
09:13
sorear probably most of you are quite happy to see that one. ;) 09:14
grondilu notice that it didn't even compile the lib 09:15
Oh sorry, it did. But in the current directory, not in ./t
tadzik hm
sorear does anyone have anything they'd really like to see on Monday? 09:16
Failure is not an option 09:17
(borderline autopun?)
tadzik heh 09:18
09:19 REPLeffect left, REPLeffect joined 09:20 raiph left
sorear sleep& 09:21
09:24 grondilu left
masak sorear: no, just a regular pun ;) 09:26
moritz n: class A { has @.a handles <push>; }; given A.new { .push: 'foo'; say .a.perl } 09:28
p6eval niecza v17-29-g69f2cee: OUTPUT«===SORRY!===␤␤Action method trait_mod:handles not yet implemented at /tmp/Ii9mbQB0Cq line 1:␤------> class A { has @.a handles <push>⏏; }; given A.new { .push: 'foo'; say .a.␤␤Trait 0 not available on variables at /tmp/…
moritz sorear: I want delegation, at least the same case of listing method names. But I already told you :-) 09:29
09:31 birdwind1pbird joined
masak jnthn++! # 6guts.wordpress.com/2012/05/26/swit...-6-source/ 09:32
09:32 birdwind2pbird joined 09:33 jerome_ left 09:45 jerome_ joined
tadzik spectest results on qbootstrap: gist.github.com/2793217 10:01
moritz would be interesting to know which ones come from custom operators 10:06
10:10 birdwindupbird left 10:12 sergot left 10:15 kresike joined
kresike hi all 10:15
masak kresike! \o/ 10:16
kresike masak, o/
dalek p/qbootstrap: 2cd24d0 | moritz++ | src/HLL/Compiler.pm:
another attempt to get HLL::Compiler to the latest state
moritz phenny: tell jnthn I think 2cd24d0 has sorted it out now. At least it now contains binary search for 'lineof' again, and makes S02-magicals/file_line.t pass again (was the old off-by-one before) 10:18
phenny moritz: I'll pass that on when jnthn is around.
10:26 Antichoc joined
jnthn Good noonish 10:30
phenny jnthn: 05:56Z <moritz> tell jnthn there seems to be something wrong with commit fea45a0b23e994634d7148af65521faa7555fcef in nqp, "Collapse QHLL back into HLL.". Some of those changes look backwards
jnthn: 10:18Z <moritz> tell jnthn I think 2cd24d0 has sorted it out now. At least it now contains binary search for 'lineof' again, and makes S02-magicals/file_line.t pass again (was the old off-by-one before)
fglock how do I invoke a system command in rakudo/niecza? 10:31
jnthn run("le command")
fglock thanks
moritz fglock: shell('le command')
run() is supposed not to invoke a shell
and NYI
jnthn oh :) 10:33
fglock ok 10:34
jnthn: I'm working on a proof-of-concept eval(:lang<Perl5>) 10:35
using a perl5 to perl6 compiler 10:36
masak \o/ 10:38
jnthn: good post-noon. :)
(Nicholas Clark)++ # p6l 10:39
10:41 Antichoc left
moritz I'm glad a respected 5er wrote that, not a 6er :-) 10:43
jnthn fglock: Innerestin' 10:44
moritz: Seems I lost a few bits when doing that QHLL => HLL thing. D'oh.
moritz: Thanks for fixing.
Hmm...I get custom operators are busted, yes. That probably is to blame for various of those failures. 10:46
moritz is it worth trying to fix them auld way? 10:51
or do they need to be redone anyway?
masak so, how does one build the new exciting qbootstrap branch? 10:52
I tried the obvious, checking it out and running `perl Configure.pl --gen-parrot`, but I got an error. 10:53
do I need to configure my own nqp specially somehow?
moritz masak: in nqp, 'git checkout qbootstrap'
masak right.
moritz and configure and install nqp
then reconfigure rakudo, and 'make spectest'
masak reconfigure rakudo with which options?
jnthn moritz: I know how to fix them. 10:54
moritz: Will do it in a moment.
moritz: I want to refactor that stuff, but it can happen in the future.
moritz jnthn: ok 10:55
10:57 preflex left 10:58 preflex_ joined, preflex_ is now known as preflex
diakopter . 11:09
fglock I have a problem, if I define multi eval($str, :$lang! where 'perl5')
then rakudo can't find eval :lang<perl6> anymore
masak diakopter: \o 11:10
moritz eeks, because eval is foolishly declared as an only sub
masak the sheer folly! 11:11
diakopter zoinks
moritz fglock: I'll make a workaround for you, hold on
dalek rlito: 91820ec | (Flavio S. Glock)++ | perl6-eval.p6:
Perlito5 - add a simple impl of multi eval($str, :$lang! where "perl5")
11:12
fglock I've pushed my test
moritz fglock: gist.github.com/2793547 11:13
r: gist.github.com/2793547 11:14
p6eval rakudo 4904b0: OUTPUT«4␤dummy p5 return value␤»
moritz this one will get the lexical context wrong for the p6 eval
but it should serve as a workaround until I've patched rakudo's eval to be a multi
fglock ah, nice :) 11:16
masak moritz: news.ycombinator.com/item?id=4026711 -- might be of interest. "Iterated prisoner's dilemma contains evolutionary opponent dominating strategies" 11:18
moritz masak: yes, I've seen the title, but haven't got around reading it yet 11:19
11:19 nebuchadnezzar left
masak :) 11:19
dalek kudo/qbootstrap: a0ed8c0 | jnthn++ | src/Perl6/Grammar.pm:
First crack at updating the code that adds new operators. This alone seems to fix O(15) of the failing test files.
11:22
rlito: 9ea3cc4 | (Flavio S. Glock)++ | / (3 files):
Perlito5 - simple perl6 eval($str, :$lang<perl5>) works!
11:29
fglock moritz: raw.github.com/fglock/Perlito/mast...l6-eval.p6 11:30
11:31 aesundstrom joined
fglock now I just need to bootstrap the p5-to-p6 compiler in perl6, and then make it a perl6 module 11:31
it's a minor problem :P 11:32
diakopter does it address the typical uses of eval, which is run code that returns objects or code that uses lexicals..? 11:33
objects in any variables
jnthn > my $pair = 'foo' => 'bar'; say $pair.WHAT 11:34
Str()
> my $pair = ('foo' => 'bar'); say $pair.WHAT
Pair()
Hmm. If anyone likes debugging EXPR... :) 11:35
jnthn afk for a little bit
tadzik heh
diakopter jnthn: sounds like a job for me
diakopter builds qbootstrap nqp 11:36
tadzik diakopter++ 11:37
moritz sounds like a precedence problem 11:38
sisar phenny: tell phenny, now you have a Wikipage too at wiki.perl6.org/phenny !
phenny Hey, I'm not as stupid as Monty you know!
moritz try say (my $pair = 'foo' => 'bar').perl 11:39
sisar who maintains phenny ?
diakopter itself
moritz sisar: did you see that I started a small blurb about phenny on the Irc bots page? 11:40
fglock returning objects work; using lexicals may work if we have something like OUTER that works for subroutines
sisar moritz: i moved your blurb to the new page. :)
diakopter invoking methods on lexicals?
I guess the object model doesn't translate fully. 11:41
moritz sisar: ok, great
fglock do we have something that lets me get lexicals in the caller?
moritz OUTER should work, yes
if not, file bug reports :-)
there might also be some rakudo specfic hacks that we currently use in rakudo's eval() 11:42
fglock this should work for niecza too 11:43
diakopter hm, how do I switch to the qbootstrap branch of rakudo? git checkout qbootstrap worked for nqp.
mwilson@u10:~/src/rakudo$ git checkout qbootstrap 11:44
error: pathspec 'qbootstrap' did not match any file(s) known to git.
moritz diakopter: did you 'git fetch' first?
in rakudo, that is?
diakopter no; what does that do
moritz get the data from the server
that's a part of what 'git pull' does internally
diakopter I did both just now; same error
moritz just a sec
jnthn r: say (my $pair = 'foo' => 'bar').perl 11:49
p6eval rakudo 4904b0: OUTPUT«"foo" => "bar"␤»
jnthn > say (my $pair = 'foo' => 'bar').perl
Confused at line 1, near "say (my $p"
Yeah, something fishy there.
diakopter oh hm. `git branch` just shows * nom
11:49 MayDaniel joined
diakopter git branch -a doesn't have qbootstrap 11:50
11:50 MayDaniel left
diakopter hm, maybe I cloned the wrong branch initially 11:51
11:51 aesundstrom left
diakopter tries fresh recloning 11:51
jnthn diakopter: How does your [remote "origin"] section look in your .git/config?
In particular, does it look like: fetch = +refs/heads/*:refs/remotes/origin/* 11:52
s/look like/have a line like/
diakopter yes
maybe because I cloned using the readonly git:: url 11:53
anyway, it found the qbootstrap branch in the fresh clone
fglock moritz: can you give me an example of how to use OUTER to peek at the caller vars? 11:54
11:54 whiteknight joined 11:55 whiteknight is now known as Guest3366
moritz r: sub f { say OUTER::.keys }; { my $x = 3; f() } 11:55
p6eval rakudo 4904b0: OUTPUT«$! GLOBALish $=pod EXPORT !UNIT_MARKER $?PACKAGE ::?PACKAGE $_ &f $/␤»
moritz oh, you probably want CALLER
r: sub f { say CALLER::.keys }; { my $x = 3; f() }
p6eval rakudo 4904b0: OUTPUT«call_sig $x $_ $*DISPATCHER␤»
moritz and you might need to walk the CALLER's OUTER 11:56
this one just gives you the immediate caller's scope 11:57
diakopter ugh. now rakudo's Configure is failing. gist.github.com/2793679 and it repeats the last three lines infinitely
moritz diakopter: it is likely that your shell does not expand ~ in that position 11:58
diakopter: in which case you should use $HOME instead
diakopter same problem 11:59
moritz hm
thing is, it should never say "Building NQP ..."
that error is new to me :( 12:00
diakopter :/
moritz it works fine for me when using the "standard" layout of having both nqp and parrot under rakudo's source dir, and installing to the default location 12:01
diakopter fixed.
I had to swap the order of --with-nqp and --with-parrot 12:02
12:02 Chillance joined
diakopter seems odd Configure.pl would require options in a particular order 12:03
fglock moritz: thanks!
sisar what's benefit of having named parameters if they are required in a particular order !
moritz diakopter: it *is* odd 12:04
12:06 [particle]1 joined 12:07 [particle] left
diakopter if (!defined $gen_nqp && (defined $with_parrot || defined $gen_parrot)) { needs to be if (!defined $gen_nqp && !defined $with_nqp && (defined $with_parrot || defined $gen_parrot)) { 12:10
dalek kudo/nom: e756635 | moritz++ | src/core/control.pm:
make &eval a multi

that way it is easier for fglock++ to experiment with p5 eval
diakopter in Configure.pl 12:13
line 59 12:14
how that would cause my problem, though... 12:15
12:16 brrt joined
dalek rlito: 1eb7e0c | (Flavio S. Glock)++ | perl6-eval.p6:
Perlito5 - perl6 eval-perl5: add comments
12:16
moritz diakopter: will fix later
12:20 birdwindupbird joined 12:24 PacoAir joined 12:25 kaare_ joined
dalek kudo/qbootstrap: 053013e | jnthn++ | src/Perl6/Metamodel/MROBasedMethodDispatch.pm:
find_method should cope with unknown adverbs (in this case, :no_trace). Fixes the two broken protoregex test files.
12:32
rlito: ae3f389 | (Flavio S. Glock)++ | perl6-eval.p6:
Perlito5 - perl6-eval.p6: add notes
12:34
diakopter starts to hear the birds chirp outside and wonders should I get 1 hour of sleep before the sun rises 12:35
12:36 bluescreen10 left
fglock diakopter++ :) 12:36
birds chirping here too, but it's an ok hour to be awake 12:37
tadzik here it's only Daft Punk chirping 12:38
dalek p/qbootstrap: 813a2d5 | jnthn++ | src/HLL/Grammar.pm:
Bring preclim handling fix in to EXPR; diakopter++.
12:45
12:46 birdwindupbird left
jnthn tadzik: If you have tuits and want to help on qbootstrap, feel free to look at the S26 failures. 12:53
tadzik jnthn: not really tuity at the moment, but I should be able to allocate some time later on 12:56
jnthn tadzik: Yeah, no hurry 12:57
dalek kudo/qbootstrap: 75c0e9c | moritz++ | Configure.pl:
[Configure] do not gen-nqp when --with-nqp is provided

Fix by diakopter++
tadzik I'm ill and I have C++ code to write :/
dunno what's worse ;)
jnthn s/and/because/ ?
;)
moritz oops, meant to push that to nom. But it's going to be get merged anyway :-)
jnthn Aye 12:58
fglock so eval :lang<perl5> actually works 13:02
fglock makes popcorn to celebrate
13:02 wolfman2000 joined
moritz \o/ 13:02
fglock++ 13:03
dalek p/qbootstrap: 7c5d69d | jnthn++ | src/QRegex/Cursor.nqp:
ident could accidentally ord past end of string; check for this. Fixes at least one of the Rakudo regressions.
13:04
masak fglock++
fglock popcorn didn't work, trying again # burned 13:06
jnthn r: [...].perl.say
p6eval rakudo 4904b0: OUTPUT«Cannot call 'infix:<...>'; none of these signatures match:␤:($a, $b)␤␤ in sub infix:<...> at src/gen/CORE.setting:11103␤ in sub <anon> at src/gen/CORE.setting:11306␤ in block <anon> at /tmp/_8QydMhMgt:1␤␤»
jnthn oh...
std: [...]
p6eval std 8632387: OUTPUT«ok 00:00 40m␤»
jnthn n: [...]
p6eval niecza v17-30-g6833fdb: ( no output )
jnthn n: [...].perl.say
p6eval niecza v17-30-g6833fdb: OUTPUT«()␤»
moritz erm 13:07
jnthn That should parse the term, no?
moritz is that parsed as a reduction of infix:<...>?
or the term?
jnthn oh!
Maybe :)
yeah, it would be :) 13:08
OK, back to the drawing board on figuring out the ... term parsing bug then :)
diakopter sub {...} fails
jnthn Right 13:09
It ain't clear to me why
13:10 Patterner left
diakopter perhaps notably, say ... gives Confused, but 13:10
r: say ... 13:11
p6eval rakudo 4904b0: OUTPUT«Stub code executed␤ in method gist at src/gen/CORE.setting:9200␤ in sub say at src/gen/CORE.setting:6924␤ in block <anon> at /tmp/w9rYXjMYax:1␤␤»
jnthn Yeah, same underlying issue I expect
oh
perl6 --rxtrace -e "say ..."
diakopter didn't know about --rxtrace
jnthn Don't trust it for large things, but here it is helpful 13:12
Anyway, something is very wrong in term
13:12 Psyche^ joined, Psyche^ is now known as Patterner
jnthn dotty should absolutely have a shorter declarative prefix than term:sym<...> 13:13
In fact, it should probably even be ruled out.
term:sym<dotty> I meant
masak .oO( ...and thus the art of debugging LTM logic was discovered... ) 13:14
jnthn
.oO( Not Fucking Awesome )
13:15
r: say chr(46)
p6eval rakudo e75663: OUTPUT«.␤»
masak jnthn: but luckily, you can always turn it into a Damn Fucking Awesome... 13:17
jnthn hmm, curious
token term:sym<...> { <sym> <args> }
STD has a ? on the <args>
masak I would expect it to.
unless <args> can be empty, which feels odd.
jnthn Yeha, it has a | <?>
masak even in STD? 13:18
jnthn no, I meant in Rakudo
masak right.
different factorings.
I like STD's better.
feels easier to say "it doesn't have <args>" than "it has <args>... and they're empty"
jnthn It does make the actions easier to do it the Rakudo way. 13:20
diakopter I don't understand why MATCH is called
jnthn To create a Match object.
diakopter after Calling term returns, I mean
jnthn It's not very interesting info usually 13:21
diakopter after Calling rad_number.. Calling before
jnthn diakopter: Yeah, but it should never get into all of that lot.
masak jnthn: oh. carry on, then.
diakopter why would it create a MATCH object when it failed to match term
jnthn Making it <args>? does fix things here. 13:22
r: say chr(40) 13:23
p6eval rakudo e75663: OUTPUT«(␤»
jnthn Ah 13:24
I just read the NFA produced for args
Yeah, it's rong 13:25
State 1 is
push $P108, 2
push $P108, 40
push $P108, 2
push $P108, 4
push $P108, 32
push $P108, 4
diakopter I thought states had 4 entries 13:26
jnthn 3 each
There's two gruops of 3 in there
| '(' <semiarglist> ')'
| [ \s <arglist> ]
| <?>
That's args
The 2,40,2 is "if ( goto state 2"
The 4,32,4 is "if \s goto state 4" 13:27
There should be something for the <?>
masak ah!
hey, I was just kidding about debugging the LTM! 13:28
jnthn Should I be worried that I can read NFAs out of lists of numbers? :)
masak absolutely.
diakopter so args can already be empty/null 13:29
jnthn diakopter: Yes, but the NFA doesn't consider "nothing else" as a pass
So it trims 13:30
And thus the ... branch is considered fail
moritz 4 passing TODOs in qbootstrap :-) 13:32
jnthn oooh
moritz and 12 failing test files
of which 5 just have one or two failures, the is mostly compile time errors
jnthn moritz: Can you paste your latest fail list for me? 13:33
moritz jnthn: just a sec
jnthn moritz: I don't have ICU here.
And I guess you do
diakopter: Found what's going on.
I think.
moritz jnthn: perlpunks.de/paste/show/4fc0dbb4.981.26c
that both latest rakudo and nqp 13:34
jnthn oddness, perlpunks.de/paste/show/4fc0dbb4.981.26c 13:35
oops
oddness, t/spec/S32-io/IO-Socket-INET.t passes here
moritz jnthn: it regularly fails on that host when run in parallel spectest 13:36
well, not always, but often
jnthn moritz: OK, I'll ignore it then
moritz curiously on another machine of mine it always passes, even in parallel
yes, ignore it
jnthn diakopter: <?> just gets dropped 13:37
diakopter is that the/a bug?
jnthn er, not quite
Hm
wait, I need to read the compiled output of the regex too... 13:38
OK, it lives on in some way, as
alt2234_2:
alt2234_end:
13:43 nebuchadnezzar joined
masak r: .say if $_ % 10 == 3 ff $_ % 10 == 6 for 1..30 13:52
p6eval rakudo e75663: OUTPUT«3␤4␤5␤6␤13␤14␤15␤16␤23␤24␤25␤26␤»
masak is there an operator that only flip-flops once?
same question for Perl 5. :)
13:53 tyatpi left
jnthn diakopter: Got a patch for it. 13:53
masak r: .say if !(my $q)++ && $_ % 10 == 3 ff $_ % 10 == 6 for 1..30
p6eval rakudo e75663: ( no output )
masak r: .say if $_ % 10 == 3 && !(my $q)++ ff $_ % 10 == 6 for 1..30 13:54
p6eval rakudo e75663: OUTPUT«3␤4␤5␤6␤»
masak guess that works.
jnthn Maybe done more readably with grep, a state var and last though. 13:55
13:55 Mark__ joined
masak agreed. 13:57
ended up with `perl -nlE 'print if /^.sub/ && !(state $q)++ .. /^.end/'`
this prints the first subroutine of some PIR output ;)
diakopter perl? 13:58
masak oh, I guess I could've used Perl 6 here, too. 13:59
diakopter Perl 5 has state? 14:00
14:00 JimmyZ_ joined
dalek p/qbootstrap: 382602b | jnthn++ | src/QRegex/P6Regex/Actions.nqp:
Change the way <?> is handled so that it does not terminate LTM. Fixes parsing of C<...>.
14:01
masak diakopter: yep, since about Perl 5.12, I think.
jnthn OK, down to 7 test files (including two that need ICU so I can't easily look at them; they may pass with the other fixes that have been done).
diakopter got another one I could golf? 14:02
14:03 cognominal_ joined
jnthn diakopter: Did you build with ICU? 14:03
diakopter hm
jnthn diakopter: 3 of the tests left broken are POD related. 14:04
2 are to do with assertion handling.
2 are from S05 and need ICU
S05-mass/named-chars.rakudo and t/spec/S05-mass/rx.rakudo
masak sorry, state has been in Perl 5 since 5.10
perldoc.perl.org/5.10.0/perldelta.h...-variables
14:05 tyatpi joined
diakopter nope 14:05
diakopter installs icu and rebuilds parrot
14:06 cognominal left
diakopter hm, libicu48 was already installed 14:07
maybe it wants libicu-dev
masak yep. 14:08
jnthn r: "x255" !~~ m/x (\d+): <?{$/[*-1] < 255}> / 14:11
p6eval rakudo e75663: ( no output )
jnthn r: say "x255" !~~ m/x (\d+): <?{$/[*-1] < 255}> /
p6eval rakudo e75663: OUTPUT«True␤»
jnthn r: say "x254" !~~ m/x (\d+): <?{$/[*-1] < 255}> /
p6eval rakudo e75663: OUTPUT«False␤»
masak < 255 ? 14:12
so FE is ok, but FF isn't?
JimmyZ_ now I build a CORE setting by using about 680M memory in qbootstrap branch, looks like less than master? 14:13
masak ooh, that's quite an improvement.
jnthn Ooh, I hadn't measured memory yet 14:14
moritz but last I looked it was quite a bit slower 14:15
JimmyZ_ yep, about 2/5 slower
moritz usually takes about 120s for the first stage (parse + actions), it's around 200 on qbootstrap
14:15 Mark__ left 14:16 brrt left
masak well, lower memory consumption might end up faster for people on whose systems compiling CORE starts swapping hopelessly ;) 14:16
and I guess there are still optimizations to be made in QRegex.
moritz aye to both
jnthn knows at least 2 places badly needing improvement in QRegex
14:16 tokuhirom left 14:18 spider-mario joined
jnthn Anyway, being down to less than 10 test files with issues within 24 hours of work on moving Rakudo over to use QRegex is pretty good going. :) 14:18
fglock I need some help with niecza in osx, "System.DllNotFoundException: libMonoPosixHelper.dylib"
JimmyZ_ jnthn++, that's too fast, which is unexpected 14:19
masak 太快了! 14:20
moritz one could almost get the impression that jnthn knows the rakudo and nqp codebases quite well... :-) 14:21
memory while compiling the setting is 800M here, and not peaked yet 14:22
jnthn guesses 64 vs 32
sjn \o
moritz 1G after the parse stage 14:23
sjn jnthn: did you get my mail?
tadzik sjn: o/
jnthn sjn: yes 14:24
sjn jnthn: do tell if there's anything I can help with, regarding that. :)
moritz and grows to 1.5G during post and pir stages :/
14:26 [particle]1 is now known as [particle]
jnthn moritz: How's that compare to nom? 14:29
masak sjn! \o/ 14:30
sjn pmichaud: btw, are you still up for the p5-mop hackathon thing? 14:37
14:37 Guest3366 left 14:42 brrt joined 14:44 NamelessTee left
moritz jnthn: roughly the same 14:45
jnthn: though I had the impression that nom used up more memory during the parse, but roughly the same amount in the end 14:47
which doesn't make any sense, I know
14:48 NamelessTee joined
masak in a perl6 -n loop, is $*IN.ins supposed to count each iteration, just like $. does in Perl 5? 14:51
because it doesn't. :( 14:52
moritz I think .ins only works well with .get, not with .lines 14:56
perlpunks.de/paste/show/4fc0ef18.97d.26c updated qbootstrap test summary
again ignore the socket tests
masak I think .ins should measure the number of records read, regardless of method. 14:57
masak submits rakudobug
moritz masak: it's not so easy
masak: because it depends on the reification model used by for/map 14:58
masak I was just getting to that.
seems -n doesn't run stuff until I ^D
that's... unfortunate.
14:58 brrt left
masak for a value of "unfortunate" that means "I'm pretty sure that's wrong". 15:00
who implemented this -n stuff? :P
moritz: is there something about `eager` that's still NYI that makes Rakudo -n not run code ASAP? 15:01
15:10 brrt joined
masak or are you saying "it's a feature, not a bug"? 15:15
15:15 brrt left
dalek p/qbootstrap: 0197389 | jnthn++ | src/QRegex/ (2 files):
Build and use the protoregex table in a much smarter way. Immediately shaves 25% off NQP test suite run time.
15:17
masak because it seems to me we keep running into situations where the bit of spec that says "&map (or gather, rather) is allowed to buffer a few elements ahead" breaks reasonable expectations.
jnthn masak: We already know map is too eager.
masak: It's on Pm's todo list already.
moritz yes, there's a submitted bug for that
and it's the .munch($argc * $count) thing that was discussed yesterday or so 15:18
jnthn Right.
15:18 ggoebel left
masak oh, ok. 15:20
but $*IN.ins is almost-but-not-quite orthogonal, I guess.
moritz no 15:23
.lines calls .get internally 15:24
so on a strictly lazy iteration, .ins is always in sync with the iterator
masak i.e. I'll merge this ticket with the one that already talks about map being too eager? 15:26
moritz +1 15:27
masak makes it so 15:28
colomon maybe I'm being dense, but I don't see how .ins can make sense with .lines.
unless you're looking for the total number of lines 15:29
masak .lines reads all lines by default. it also takes an argument, in which case it doesn't. 15:30
felher likes meta operators. 'min=' is just as consistent as it's neat :)
masak .ins should work like $. , IMHO.
15:31 nebuchadnezzar left
colomon masak: but it doesn't really make sense in a possibly lazy context. 15:32
moritz r: sub l { gather while !$*IN.eof { take get } }; my $x = l()[2]; say $*IN.ins
p6eval rakudo e75663: OUTPUT«0␤»
15:33 nebuchadnezzar joined
moritz r: sub l { gather while !$*IN.eof { take $*IN.get } }; my $x = l()[2]; say $*IN.ins 15:33
p6eval rakudo e75663: OUTPUT«3␤»
moritz OH
it's $*ARGS vs. $*IN
colomon who'd win?
moritz 15:34
masak if $*ARGS.ins works like I want, I'll happily let moritz win ;) 15:35
moritz erm, ARGFILES, sorry 15:38
masak woddeva.
moritz but it doesn't seem to work either 15:40
masak right. for the above reasons.
moritz I'm not convinced 15:42
because it always says 0
but it really should say the last line number all over, no?
15:43 preflex left
moritz r: class A { has $.x }; class B is A { has $.x; method set() { $!x = 5 } }; given B.new { .set; say .x } 15:43
p6eval rakudo e75663: OUTPUT«5␤»
moritz the problem is that IO::ArgFiles inherits from IO 15:44
and has it own $!ins
but not its own accessor
IO::ArgFiles.ins returns $!ins from class IO, which is still 0
15:45 preflex joined, sporous left
masak huh. 15:45
dalek p/qbootstrap: 25680d9 | jnthn++ | src/ (3 files):
Clean up the fate sorting silliness (temporary extra op due to needing a trip around the bootstrap to eliminate it; will keep the old one for another day or so in case the new way introduces issues). This shaves 10% off parse/actions time for CORE.setting.
15:45 sporous joined
moritz masak: fun, eh? 15:45
masak sounds like something's askew somewhere...
moritz but a single-character fix
masak \o/ 15:46
dalek kudo/qbootstrap: 51f1b93 | moritz++ | src/core/IO/ArgFiles.pm:
fix IO::ArgFiles.ins
15:51
moritz now it returns the number of the last line all over, as I expected :-)
r: for lines() { print $*ARGFILES.get }
p6eval rakudo e75663: OUTPUT«End of argfiles reached␤ in method Str at src/gen/CORE.setting:9200␤ in method print at src/gen/CORE.setting:7048␤ in sub print at src/gen/CORE.setting:6919␤ in block <anon> at /tmp/Yh07xAtXXT:1␤␤»
moritz r: for lines() { print $*ARGFILES.ins }
p6eval rakudo e75663: OUTPUT«00000000000000000000000»
15:52 preflex left 15:53 preflex joined, sporous left 15:54 sporous joined
masak adds all this to le ticket 15:57
16:00 spider-mario left 16:03 nebuchadnezzar left 16:16 sporous left, sporous joined 16:17 preflex left, preflex_ joined 16:18 preflex_ is now known as preflex 16:20 preflex_ joined, spider-mario joined 16:23 preflex left, preflex_ is now known as preflex 16:24 nebuchadnezzar joined
dalek rl6-bench: e4d4e94 | (Geoffrey Broadwell)++ | bench:
Refactor test definitions to remove more nearly-duplicated code; needs a large whitespace realignment, separated into next commit
16:24
rl6-bench: 71c3c79 | (Geoffrey Broadwell)++ | bench:
Pure whitespace realignment after previous commit's refactoring
rl6-bench: ede2944 | (Geoffrey Broadwell)++ | / (2 files):
Notice when test processes get terminated by SIGINT: stop processing tests and just show summary
16:28 cognominal___ joined 16:31 cognominal_ left 16:35 REPLeffect left 16:36 REPLeffect joined
JimmyZ_ good night 16:40
16:40 JimmyZ_ left 16:41 cognominal joined
masak 晚安, 卓明亮 16:42
16:44 cognominal___ left
dalek kudo/qbootstrap: e22f54f | jnthn++ | src/Perl6/Grammar.pm:
Remove a couple of unrequied lookaheads, saving almost 40,000 calls to before while parsing CORE.setting.
16:49
kudo/qbootstrap: 5bec1f1 | jnthn++ | src/Perl6/Grammar.pm:
Remove a now-unrequired <!before ...> in rad_number, meaning that it gets a declarative prefix (and thus trims sooner).
kudo/qbootstrap: 1b72f38 | jnthn++ | src/Perl6/Grammar.pm:
Micro-optimization to desigilname.
kudo/qbootstrap: 12b2cd7 | jnthn++ | / (2 files):
Merge branch 'qbootstrap' of github.com:rakudo/rakudo into qbootstrap
masak .oO( of all the kinds of <!before>, the unrequired one is the most tragic... ) 16:51
16:52 birdwind2pbird left 16:54 birdwind1pbird left 17:08 am0c joined 17:15 jaldhar_ is now known as jaldhar 17:19 rindolf joined
rindolf Hi all. Happy Shavuoth. 17:19
masak happy שבועות, rindolf. 17:20
rindolf masak: תודה.
17:30 PacoAir left
diakopter jnthn: the NFA quantifications [that I did] could use a perf look. I think there could be some unnecessary states in there. 17:30
jnthn diakopter: Even if there are, it's not all that hot in the benchmark. 17:31
17:31 tyatpi left
moritz parsing speed now much closer to what it was before 17:32
jnthn moritz: Do you have the two numbers to hand?
moritz jnthn: used to be around 120s, is now 148s (but on a bit faster machine, no direct comparison yet) 17:34
17:41 mucker joined
jnthn moritz: OK. 17:43
I'm working on a few more improvements here.
I realized that although we almost never use positional matches, every single match object gets it's own RPA for them. 17:44
diakopter building CORE.setting took up to 1500MB allocated on 64-bit linux
jnthn *its
diakopter 1600 virt 17:45
17:56 Antichoc joined
moritz hm, 211s on the slower machine 17:57
I'll re-time nom
jnthn wtf. 18:05
Somehow match objects get mutated by...something 18:06
moritz ok, the nom timing on that machine is 167s, not 120
for the parse+actions stage
jnthn r: say 167 / 211
p6eval rakudo e75663: OUTPUT«0.791469␤»
moritz r: say (211-167) / 167
p6eval rakudo e75663: OUTPUT«0.263473␤»
jnthn That's with latest stuff? 18:07
moritz yes 18:08
tadzik jnthn: what's up with S26? spectests failing? 18:18
ah, I see it
jnthn yeah
sorear good * #perl6 18:30
diakopter o/ 18:32
masak sorear! \o/ 18:33
18:38 pmurias joined
pmurias hi 18:38
fglock: having perlito5-big cooperating with a perl6 compilers seems a good idea to me 18:39
fglock blogged: blogs.perl.org/users/flavio_s_glock...-lang.html 18:40
I wish I could write more clearly :(
pmurias: hi! 18:41
dalek p/qbootstrap: f8f164f | jnthn++ | src/ (2 files):
Optimize MATCH and CAPHASH to construct less objects.
fglock sorear: I've got this message from niecza: "System.DllNotFoundException: libMonoPosixHelper.dylib" - is it a problem with my mono installation? (osx) 18:42
moritz man, the British and their English. Shouldn't it be "construct fewer objects"? :-) 18:47
or do we construct so many that they basically form a continuum? :-) 18:48
masak jnthn does the s/fewer/less/ thing quite a bit. I've started to find it charming.
18:49 whiteknight joined 18:50 whiteknight is now known as Guest10986
diakopter nearly all usa-ians use less for fewer 18:52
18:53 birdwindupbird joined
diakopter well, most at least 18:54
fglock pmurias: did you see the eval impl? I can't run it on niecza, only rakudo
pmurias yes 18:55
masak in Sweden people do a less/fewer confusion too, but it's further exasperated by the fact that the same word is used for "less" and "smaller".
pmurias what's the problem with niecza? i made it run the "real" perl5 18:56
fglock yes, I know :)
pmurias i mean why can't you hook it in?
fglock it gives me a "libMonoPosixHelper" missing message
googling now 18:57
yay - it works now # missing LD_LIBRARY_PATH 19:01
sorear fglock: libMonoPosixHelper.dylib is an internal part of mono. Some part of your install is borked beyond my ability to help. 19:02
19:02 stepnem left
dalek rlito: ec8949c | (Flavio S. Glock)++ | perl6-eval.p6:
Perlito5 - perl6-eval.p6: fix for niecza
19:03
19:04 PacoAir joined
fglock sorear: thanks, I found the problem, it's fixed now 19:04
19:04 stepnem joined
sorear \o/ 19:07
19:10 fgomez left 19:12 fgomez joined
jnthn moritz: Also, less takes less keystrokes to type ;) 19:14
I'm not particularly concious about it, though. 19:15
masak Language Log has written lots on it. 19:17
on the silliness of "6 items or fewer", for example.
19:18 pmurias left
sorear meh, does it really matter? jnthn meant what he meant and it looks like everyone understood him 19:18
masak well, this is the constant tension between letting non-standard grammar pass, and pointing it out. 19:20
19:20 benabik left
jnthn This one isn't really non-standard these days, though. 19:20
19:20 rjbs joined, benabik joined
masak too strict, and the conversation goes meta at the expense of content. too lax, and at some point you'll have a genuine misunderstanding. 19:20
jnthn: agreed. it's very widespread.
rjbs jnthn++ # just read qbootstrap post 19:21
jnthn masak: Does Swedish distinguish the too?
masak rjbs! \o/
jnthn: yes, as I said above, it's quite a bit worse here because the word for "less" also means "smaller".
jnthn: so you get sentences like "There's smaller people here nowadays".
jnthn rjbs: Happy you liked it :) 19:22
masak: Hmm...I can't say I've noticed an abundance of such mistakes.
I'm *really* bad at looking for this stuff though. 19:23
masak it doesn't happen so often in print.
19:24 pmurias joined
jnthn r: say 12.7 / 67 19:24
p6eval rakudo e75663: OUTPUT«0.189552␤»
spider-mario <masak> in Sweden people do a less/fewer confusion too, but it's further exasperated by the fact that the same word is used for "less" and "smaller". 19:25
same in french
« moins » for both 19:26
masak sorear: I'd much rather jnthn find a way to conform to the 50 + 0 + 72* column format of git commit messages, than fix his s/fewer/less/ quirk.
spider-mario “fewer persons” ↔ « moins de personnes »
“less cheese” ↔ « moins de fromage »
jnthn So, 19% of our parse/actions time is spent creating Match objects.
spider-mario no difference between “much” and “many” either 19:27
masak spider-mario: that's not the same as in Swedish. we have different words for "fewer" and "less", but the same word for "less" and "smaller".
spider-mario « beaucoup »
oh
jnthn r: say 7 / 67
p6eval rakudo e75663: OUTPUT«0.104478␤»
masak spider-mario: basically, jnthn would enjoy your system better :)
jnthn And over 10% in <.ws>
19:27 rjbs left
diakopter I should've qualified: "nearly all usa-ians" - including myself, usually, unless I happen to be in a very erudite mood. 19:29
masak un*fewer* :P 19:30
spider-mario phonetically, there is “phew” in “fewer” 19:31
thus, I suggest we use “fewer” mainly when having many is not desirable
:)
“‘Phewer’ Match objects are created now. What a relief!” 19:32
diakopter jnthn: mass/rx.rakudo seems to be ok except for \x[\d\d,\d\d] and \osame
masak spider-mario: :P 19:33
sorear here in San Diego, I don't think anyone uses 'much' as anything except an adverb
jnthn diakopter: OK, good to know. 19:35
diakopter jnthn: the rxtrace output must be truncated for -e '/\x[21,21]/' 19:36
it says Unrecognized backslash sequence, but it only barely gets into the / /
I don't see it getting anywhere near a backslash rule 19:37
is it possible it's truncated? 19:38
the last four lines are: Calling quote:sym</ /> Calling LANG Calling target Calling pos 19:39
jnthn Possibly.
Oh...maybe the trace doesn't descend into the nested cursor or something.
er, nested langauge I mean
diakopter yeah; seems to be. it doesn't descend with a successfully parsed regex 19:40
I'll investigate that 19:43
jnthn diakopter: does \xBEEF work? 19:44
diakopter: It's just the \x[...] form that's busted?
diakopter corect 19:45
jnthn Maybe check out the NFA for hexints
Inherited from HLL::Grammar iirc
19:48 mucker left
diakopter oh, I guess there's not an NFA constructor for delimiter repetition % 19:53
tadzik jnthn: looks like substr() is broken 19:57
jnthn: gist.github.com/2795109
diakopter subst()? 20:00
tadzik yeah
moritz or is it just variable interpolation into regexes that's broken? 20:04
tadzik oh, true that
20:04 kaare_ left
moritz just try something like my $s = ' '; say ('a ' ~~ /a$s/).to 20:07
src/Perl6/Grammar.pm still has some cases of PAST::Regex 20:08
I thought those should all be QAST::Regex now?
masak hehe -- "a$s" :)
tadzik that gives -3 20:09
moritz aka "match failed"
tadzik right
masak -1 is "group failed", -2 is "rule failed", IIRC
tadzik so -3 is "all aboard the ship of failure"? ;)
moritz I think masak is talking about .from 20:10
I think .to is always -3 for failed matches
but I might be wrong
jnthn tadzik: Wait, is that NQP code or Perl 6? 20:12
masak moritz: oh! could be. 20:13
20:13 rindolf left 20:15 cognominal_ joined
tadzik jnthn: nqp 20:15
moritz I was wrong about PAST::Regex still appearing in Grammar.pm. I was in the wrong branch
tadzik jnthn: straight from Actions.pm
jnthn tadzik: ah, ok 20:16
20:18 cognominal left 20:24 kurahaupo joined 20:27 pernatiy left 20:30 pernatiy joined
moritz nqp: use NQPHLL; sub f($x = PAST::Block.new()) { }; f() 20:34
p6eval nqp: ( no output )
moritz nqp: use NQPHLL; sub f($x = PAST::Block.new(:blocktype<method>)) { }; f() 20:35
p6eval nqp: ( no output )
20:37 sisar left
moritz somehow that Null PMC access'es in 'make test' in nqp 20:37
Null PMC access in find_method('new') to be exact 20:38
20:40 birdwindupbird left
moritz nqp: use NQPHLL; our sub f($x = PAST::Block.new(:blocktype<method>)) { }; f() 20:43
p6eval nqp: ( no output )
moritz nqp: our sub f($x = PAST::Block.new(:blocktype<method>)) { }; f()
p6eval nqp: ( no output )
moritz indeed, locally 20:44
$ ./nqp -e 'use NQPHLL; sub f($x = PAST::Block.new(:blocktype<method>)) { }; f()'
Null PMC access in find_method('new')
if I had to guess, I'd say that default values get the wrong OUTER or something 20:45
20:45 cognominal joined
diakopter nqp command line NPMCA with just use NQPHLL; PAST::Block.new() 20:45
moritz hm 20:46
what 'use' do I have to do to get it?
jnthn That lives in PASTRegex today 20:47
(which doesn't have anything to do with Regex any more...just PAST)
moritz looking at the generated PIR, the lookup for PAST goes through GLOBAL and not OUTER anyway :-) 20:48
20:49 cognominal_ left
jnthn ah... 20:49
moritz ok, when I add a 'use PASTRegex;' to QRegex/P6Regex/Actions.nqp, t/nqp/49-regex-interpolation.t lives 20:51
but still fails 4 tests
jnthn They may be realted to what I'm looking into now
In tadzik's example, it's compling a$s as if $ is end of string 20:54
20:56 skyheights joined, kurahaupo left
diakopter I can't even figure out how to always enable tracing for the new cursor created in .LANG 20:57
jnthn diakopter: It's a property of the meta-class rather than of the cursor iirc 21:00
yeah 21:01
$grammar.HOW.trace-on($grammar) if %adverbs<rxtrace>;
diakopter right, but ..
jnthn So you could do that on the sublang's cursor, but the if should be something like if self.HOW.traced(self) or something
dalek p/qbootstrap: 8982bd8 | moritz++ | src/QRegex/P6Regex/Grammar.nqp:
use PASTRegex; avoids death in the interpolation tests
jnthn diakopter: Put it in LANG 21:02
diakopter ok I'll try it
jnthn moritz: Will test that patch with mine to see if it helps 21:03
diakopter: oh, you'll need to add a .trace method to NQPClassHOW
masak the channel is rife with work tonight. it's nice to see.
diakopter knew it
jnthn diakopter: So you can introspect whether tracing is currently on.
I thought it already had one... :) 21:04
masak just so we don't scare off any lurkers/newbies: we don't bite! we're just really, really into this. :)
diakopter I like to celebrate when I think something for myself; it's rare enough. :)
jnthn DISREGARD THAT FEAR OUR PRODUCTIVITY
:P
masak steamroller-driven development 21:05
jnthn moritz: yay 21:06
dalek p/qbootstrap: afa9f9c | jnthn++ | src/HLL/Grammar.pm:
Optimize MARKED and MARKER a little, and make it less PIR-y.
p/qbootstrap: 594b59d | jnthn++ | src/stage0/ (8 files):
Update bootstrap with lastest improvements.
p/qbootstrap: 0063bcd | jnthn++ | src/NQP/Grammar.pm:
Fix the prefix for nqpvar, so we parse /a$s/ correctly (tadzik++ for discovering the issue).
jnthn moritz: If you combine your patch with mine, all of the interpolation tests pass :) 21:07
jnthn wonders if that'll help the pod tests...
moritz jnthn: so, how do we enable the regex tests again? 21:12
jnthn moritz: diakopter++ discovered that it's \x[12,34] that busts them 21:14
moritz probably just remove the dependency on qregex, I guess?
jnthn moritz: oh, wait...you mean in nqp?
moritz jnthn: yes
jnthn Sorry, I thought you meant S05...
moritz and I guess p6regex-test can go too? 21:15
jnthn yes
moritz: nqp t/qregex/01-qregex.t works for me. 21:16
moritz jnthn: here it complains that dependency 'qregex' has no build rule
jnthn moritz: How are you trying to run it? Makefile?
moritz -qregex-test: $(NQP_EXE) qregex
+qregex-test: $(NQP_EXE)
jnthn: yes
jnthn oh!
Yeah, that's why we get different outcomes ;)
Yeah, toss the dependency.
We always build qregex now. 21:17
dalek p/qbootstrap: 26382e7 | moritz++ | t (13 files):
remove p6regex tests (use qregex-test instead)

also remove bogus dependency on qregex for qregex-test
jnthn tadzik: I think Pod should be in better shape with latest NQP.
tadzik jnthn: yeah, rebuilding stuff now 21:18
you just commit faster than I compile :)
21:24 kresike left
arnsholt Heh. Learn you a Haskell has PHP humor in it ^_^ 21:33
masak I've now read developers.slashdot.org/story/12/05...0-released -- interesting how much of the discussion is about Perl 6. 21:40
I actually find the whole discussion mostly positive.
there are people giving arguments against Perl 6, and people coming up and defending it in refreshing ways.
the argument "who cares if it takes twenty more years, likely I'll be programming then" is one I hadn't heard before, and didn't expect from Slashdotters. 21:41
dalek p/qbootstrap: 5e21bba | jnthn++ | src/ops/nqp.ops:
A little speedup to NFA evaluation.
tadzik jnthn: yep, that fixed the test :) 21:47
jnthn tadzik: All the Pod ones work for you now?
tadzik jnthn: well, the only ones that were broken before
I mean, I didn't check the rest of them 21:48
I'm now rebuilding nqp again, to keep up-to-date
21:48 donaldh joined
sorear n: sub foo() { }; multi foo() { }; 21:50
p6eval niecza v17-30-g6833fdb: OUTPUT«Potential difficulties:␤ &foo is declared but not used at /tmp/Czd28g780v line 1:␤------> sub foo⏏() { }; multi foo() { };␤␤»
sorear n: sub foo() { 1 }; multi foo() { 2 }; say foo 21:51
p6eval niecza v17-30-g6833fdb: OUTPUT«1␤»
sorear n: sub foo() { 1 }; proto foo() { }
p6eval niecza v17-30-g6833fdb: OUTPUT«Potential difficulties:␤ &foo is declared but not used at /tmp/80RFLdrmaO line 1:␤------> sub foo⏏() { 1 }; proto foo() { }␤␤»
jnthn r: sub foo() { }; multi foo() { };
p6eval rakudo e75663: OUTPUT«===SORRY!===␤Redeclaration of routine foo␤at /tmp/slsAM9E8_W:1␤»
21:53 donaldh left
spider-mario masak: too bad too few of them are aware of the plan to have the CPAN usable from Perl 6. 21:54
masak spider-mario: it would make a big difference. 21:56
spider-mario indeed, it’s nothing like the Python 3 move.
it’s better in many ways.
:)
masak Pugs could do it. fglock's perlito can, if I understand correctly. Rakudo can do it through blizkost. Niecza hasn't dabbled in CPAN, IIUC. 21:57
dalek p/toqast: 40e7584 | masak++ | / (2 files):
[QAST::Operations] implemented named arguments

Named parameters were already implemented, so making a call with named args works now.
21:58
p/toqast: d124e96 | masak++ | / (3 files):
implemented named arguments for 'callmethod'

Same code as for 'call'. Will refactor in the next commit.
sorear There's a plan to make CPAN usable from Perl 6? 21:59
p/toqast: cd60db0 | masak++ | src/QAST/Operations.nqp:
[QAST::Operations] factored out common loop body

Simple "extract subroutine" for ya. But it's only gonna get worse, once we do slurpies, too.
p/toqast: 2b55922 | masak++ | / (2 files):
added test for call to block with slurpy

The functionality was already there.
p/toqast: b66b2e1 | masak++ | / (2 files):
[QAST::Operations] implement flattened arguments
masak \o/
tadzik good stuff :)
masak++
sorear There's a plan to make CPAN usable from Perl 6?
masak yes.
S11:528: use Whiteness:from<perl5>:name<Acme::Bleach>:auth<cpan:DCONWAY>:ver<1.12>; 22:00
diakopter that's the whole S01 switching between use v5 and v6 and back and forth
masak diakopter: that's for when you want to integrate inline *code*, I guess.
diakopter: CPAN integration is more about integrating modules. 22:01
jnthn r: say 14.11 / 66.61
p6eval rakudo e75663: OUTPUT«0.211830␤»
masak which is found in S11.
sorear most of S11 was written before we understood that some things are possible and not others.
masak things in the spec that have crept below the line of implementability should be marked as such and eventually removed or revised. 22:05
diakopter in git, how do I list what commits I have pending to push 22:09
nm 22:11
sorear git log origin/master...HEAD
something like that
diakopter hmm. why does it list the entire history of the branch 22:12
nm, I did git log origin/qbootstrap..qbootstrap and that shows my 1 commit 22:13
22:14 pmurias left
sorear n: say ([Z]()) 22:15
p6eval niecza v17-30-g6833fdb: OUTPUT«␤»
sorear n: say ([Z]()).perl
p6eval niecza v17-30-g6833fdb: OUTPUT«().list␤»
22:17 Antichoc left
dalek p/qbootstrap: 9befba5 | diakopter++ | src/ (2 files):
propagate --rxtrace (and its trace depth for indents) to inner languages
22:18
diakopter as usual, jnthn++ for doing most of the work. 22:23
masak diakopter++ 22:28
diakopter !seen TimToady 22:31
.seen TimToady 22:32
phenny diakopter: I last saw timtoady at 2012-05-24 16:32:10 UTC on #perl6
spider-mario that’s two days ago :( 22:33
diakopter I don't know why `git push` tried to push the one commit to three branches I had checked out, master, toqast, and qbootstrap
it failed for the first two
22:34 fglock left
diakopter /\x[21]/ works, but /\x[21,21]/ is unrecognized 22:37
jnthn diakopter: Does a tactfully placed {} help? 22:38
(e.g. after we parse "\x["
)
diakopter I don't konw what you mean 22:39
jnthn diakopter: In the rule that parses this, try adding a {} after it has parsed the [ 22:40
diakopter ohh
jnthn diakopter: {} forces end of LTM prefix
diakopter: If that makes it work, it means the NFA generation is busted somehow (probably the separator issue)
diakopter trying
yep that makes it work 22:45
since I did the NFA quant, I guess I'll try to extend it to cover % and %% 22:46
unless someone redid it since I touched it...
jnthn diakopter: I think %% may be desugared before we got to the NFA 22:47
diakopter: No, nobody redid it afaik :)
dalek p/toqast: 39a8dad | masak++ | / (2 files):
[QAST::Operations] implement :flat :named

Parrot makes this work even without the :named, but it's nice to have it there, I guess.
22:48
22:49 NamelessTee left
diakopter hunh. %/%% appear to be left-associative 22:52
jnthn Huh?
It's a modifier on a quantifier
[ <.ws> <separator> ]? 22:53
diakopter not how it's factored in the grammar
jnthn Parsed by that in quantified_atom
What grammar are you looking at?
diakopter ..and separator can have another quantified atom in it 22:54
with potentially another separator
oh, I guess that makes it right-associative, nm
jnthn :)
masak is something like `<atom>+ % <sep1> % <sep2>` legal? 23:00
jnthn No 23:01
But you could do
masak std: / \d+ % ',' % ';' /
p6eval std 8632387: OUTPUT«===SORRY!===␤Unrecognized regex metacharacter % (must be quoted to match literally) at /tmp/txAjB9i_TM line 1:␤------> / \d+ % ',' %⏏ ';' /␤Unable to parse regex; couldn't find final '/' at /tmp/txAjB9i_TM line 1:␤------> / \…
jnthn <atom>+ % <foo>+ % <bar>
sorear std: / x+ % x+ % x+ /
p6eval std 8632387: OUTPUT«ok 00:00 41m␤»
masak jnthn: hm, but I meant the other thing.
[<atom>+ % <foo>]+ % <bar> 23:02
23:02 wolfman2000 left
jnthn No, it'll parse as <atom>+ % [<foo>+ % <bar>] 23:02
masak *nod* 23:03
jnthn It's consistent with the "can't quantify a quantifier" thing.
diakopter <atom>+ % <sep1>+ % <sep2> is, according to Grammar.pm
with the second +
23:03 jlaire left, renormalist left, ashleydev left, renormalist joined, ashleydev joined, jlaire joined
sorear it's consistant with our using LL parsers instead of LR 23:03
right associativity comes out naturally from STD-like parsing systems 23:04
masak I guess. 23:05
23:08 [particle]1 joined
diakopter are % and %% working in rakudo now? I can't make it work 23:08
or nqp 23:09
jnthn It must be...we're using it in various places in Rakudo's grammar.
What are you trying?
diakopter r: say('aaaaaba' ~~ /^^ a %% b $$/) 23:10
p6eval rakudo e75663: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix / instead at line 1, near "^^ a %% b "␤»
jnthn r: say '1,2,3' ~~ /\d+ % ','/
p6eval rakudo e75663: OUTPUT«q[1,2,3]␤␤»
jnthn diakopter: It goes after a quantifier.
diakopter ergh, duh.
23:11 [particle] left
masak good night, #perl6 23:20
diakopter o/ 23:21
jnthn Time for sleep, I think 23:24
o/ 23:27
23:28 PacoAir left 23:41 b1rkh0ff left
diakopter std: /a?%b/ # doesn't make sense; the separator would never be tried 23:42
p6eval std 8632387: OUTPUT«ok 00:00 41m␤»
23:43 spider-mario left 23:55 b1rkh0ff joined 23:58 aesundstrom joined