Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2012-05-26

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:05 * sisar replied to Mr Estarde's mail on p6l
00:05 sisar I did not feel any compeelling need to reply, but...
00:06 sisar Just wanted to see if I can articulate some point properly :)
00:06 sisar I hope I did convey the right message and feel of the perl6 community.
00:06 sisar s/feel/spirit
00:11 sisar oops... its Estrade and not Estarde :)
00:12 dalek rakudo/qbootstrap: cc75bfd | jnthn++ | src/core/Temporal.pm:
00:12 dalek rakudo/qbootstrap: 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 dalek rakudo/qbootstrap: review: https://github.com/rakudo/rakudo/commit/cc75bfd61e
00:12 dalek rakudo/qbootstrap: dccd9cf | jnthn++ | src/Perl6/Actions.pm:
00:12 dalek rakudo/qbootstrap: Avoid a double-make (but doesn't fix anything).
00:12 dalek rakudo/qbootstrap: review: https://github.com/rakudo/rakudo/commit/dccd9cf513
00:12 dalek rakudo/qbootstrap: d7e3797 | jnthn++ | src/Perl6/Actions.pm:
00:12 dalek rakudo/qbootstrap: 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:12 dalek rakudo/qbootstrap: review: https://github.com/rakudo/rakudo/commit/d7e37976a1
00:13 am0c joined #perl6
00:14 sisar jnthn: this 'qbootstrap' changes, what will be the user visible changes ? speed? new features?
00:15 sisar ditto for 'toqast'. What are the user-visible changes ?
00:18 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.
00:19 jnthn sisar: masak's macros work, as sorear mentions, wants toqast to get done.
00:19 DarthGandalf joined #perl6
00:19 DarthGandalf joined #perl6
00:19 sisar jnthn: right. masak++'s Q2 work on macros, IIRC.
00:20 jnthn sisar: Further STD convergence should also be possible, now we have properer LTM to hand.
00:20 sisar wow. STD coming to Rakudo !
00:21 jnthn Well, it's a step by step thing :)
00:21 jnthn "Just use STD" is not the answer.
00:21 sisar jnthn: what will happen to to Rakudo's grammar? will it be merged with STD ?
00:21 sisar or replaced by STD?
00:21 sorear Rakudo's grammar is a member of the STD family.
00:21 jnthn sisar: Rakudo's grammar will continue to evolve, getting closer to STD where it makes sense, and remaining distinct where it makes sense.
00:21 sorear It has been for several years.
00:22 sorear Rakudo's grammar was replaced with STD during the 'ng/alpha' branch switch.
00:22 sorear TimToady's copy of STD is a dedicated syntax checker and is not useful for compilers.
00:22 sorear Rakudo's copy is the other way around.
00:23 sisar what about Niecza?
00:23 jnthn Well, Rakudo's copy could learn some things from STD. :)
00:23 jnthn If STD wants to stay as a syntax checker, it probably doesn't have such a pressing need to learn from Rakudo though :)
00:23 jnthn The main thing STD does a LOT better than Rakudo that I do care about is the errors.
00:24 jnthn 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" :)
00:26 jnthn Right. :) Rakudo often does too, but not often enough.
00:26 jnthn 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.
00:27 diakopter NQP *better than?
00:27 jnthn er, yes. :)
01:01 aesundstrom joined #perl6
01:14 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 diakopter it is way too buried currently
01:19 leprevost joined #perl6
01:34 fgomez joined #perl6
01:37 whiteknight joined #perl6
01:37 japhb joined #perl6
01:41 JimmyZ_ joined #perl6
01:50 JimmyZ_ hmm, binary search in NQP is dead again with fea45a0b23e994634d7148af65521faa7555fcef
01:55 jnthn Feel free to resurect it... ;)
01:56 jnthn Blog post! http://6guts.wordpress.com/2012/05/26/switching-to-qregex-for-parsing-perl-6-source/
01:56 jnthn And now, sleeeeeeep o/
01:56 diakopter jnthn: did you do speed comparisions
01:56 PerlJam jnthn: wait!  I have a quick question
01:57 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?
01:57 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.
01:58 jnthn 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 ?
01:59 PerlJam or, lookup how?
01:59 jnthn No, it's a method, not a sub
01:59 jnthn .HOW.find_method
01:59 PerlJam yeah, okay.
02:00 jnthn pir::find_method__PPs(QRegex::P6Regex::Actions, 'meth_name') also works
02:00 jnthn Will get replaced with an nqp:: later
02:00 jnthn But feel free to use that for now
02:01 jnthn OK, really sleeping :)
02:01 PerlJam gotcha.  thanks
02:01 PerlJam g'night jnthn!
02:01 jnthn 'night
02:03 * PerlJam reads jnthn's blog
02:04 japhb joined #perl6
02:13 stocks29 joined #perl6
02:15 JimmyZ_ joined #perl6
02:23 wolfman2000 joined #perl6
02:34 jaldhar joined #perl6
02:53 tokuhirom joined #perl6
02:54 wolfman2000 joined #perl6
02:55 AndChat|524400 joined #perl6
02:55 _jaldhar joined #perl6
02:57 AndChat-524400 joined #perl6
02:58 AndChat|524400 joined #perl6
02:58 thou joined #perl6
03:14 raiph joined #perl6
03:15 raiph hi all. did anyone figure out who controls @perl6 on twitter?
04:10 fgomez joined #perl6
04:32 moritz \o
04:32 moritz jnthn++ # blog
04:32 moritz jnthn++ # qbootstrap
04:33 xinming_ joined #perl6
04:49 wolfman2000 joined #perl6
04:51 jaldhar_ joined #perl6
05:13 sorear raiph: I am not sure anyone looked.
05:22 jaldhar_ joined #perl6
05:26 sisar joined #perl6
05:30 raiph sorear++ # "erm, that didn't come out right" (during discussion with pmichaud)
05:31 raiph sisar: o/
05:31 raiph sisar: edited wiki/module page
05:31 sorear mm, wikis?
05:32 sorear raiph: how go things in your corner of perl6-land?
05:37 moritz it seems that many of the remaining rakudo/qbootstrap failures are related to new operators
05:38 raiph sorear: interested in the p6 marketing challenge
05:43 sisar raiph: \o
05:43 raiph sorear: i've been lurking (occasionally saying/doing something very small) since 2000
05:43 sisar raiph++
05:46 sisar 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:47 raiph sorear: i think p6 is about 2 years off being robust enough to begin to really take off
05:47 JimmyZ_ joined #perl6
05:47 JimmyZ_ moritz: I pull a request to nqp
05:48 sisar raiph: please add to http://wiki.perl6.org/.pm and http://wiki.perl6.org/.pl too :)
05:49 fgomez joined #perl6
05:50 moritz JimmyZ_: yes, I've seen it, thanks
05:50 JimmyZ_ :)
05:50 moritz JimmyZ_: but I'm pretty sure there's something creepy going on which caused other changes to be lost too
05:51 moritz JimmyZ_: and I'd rather find a way to restore them all, instead of restoring them piece by piece
05:51 JimmyZ_ moritz: great
05:52 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
05:52 sisar moritz: and the rest of it?
05:52 moritz (perl 5 also allows .pmc or so, iirc)
05:53 moritz the rest is also vaguely true
05:53 moritz I think we allow some more freedom in the file name
05:54 moritz ie you can write   MyModule.2.pm to   and   use MyModule;  finds it
05:54 moritz that's one of the concessions to allow multiple version of the same module
05:56 moritz 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.
06:00 raiph jnthn++ # great hacker
06:00 raiph jnthn++ # great blogger
06:04 localhost joined #perl6
06:12 sorear cool wiki.
06:12 raiph sorear: haskell
06:13 sorear raiph: ?
06:14 raiph the wiki at wiki.perl6.org uses haskell
06:14 sorear so what?
06:14 sorear I am just so so so so glad to kiss SocialText goodbye
06:16 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:17 raiph i don't hate anything, but if i did, SocialText would be high on the list
06:19 sorear s/SocialText/the TPF wiki/
06:21 moritz so, who wants to port stuff rom the TPF wiki to wiki.perl6.org?
06:21 sisar moritz: i'm already considering it :)
06:22 sorear license check?
06:23 sisar huh ? is there a license?
06:25 sisar oh here it is: http://www.perlfoundation.org/perl6/index.cgi?about_this_wiki#copyright_and_license
06:25 sorear sisar: you need to check that first.
06:26 sorear 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:28 sisar hmm, i guess here forgiveness > permission does not apply :p
06:30 moritz except that "everything is forbidden" doesn't work for wikis at all
06:30 raiph both links in the license text are broken
06:31 raiph so, formally, go by the text: "same (always latest) license(s) used by the Perl 6 /src branch of the Pugs trunk."
06:32 raiph 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 ?
06:33 sisar s/perl/perl6
06:33 moritz but whiche of them? or a conjunction? dijunction?
06:33 moritz sisar: he wrote the original tablets on the wiki himself
06:33 moritz sisar: so he was free to use any license he wanted
06:33 sisar oh !
06:34 moritz sisar: anyway, all of these licenses allow copying the stuff over to a new location
06:36 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:37 sisar many are short biographies of Perl 6 hackers++. Which again are not high priority.
06:37 raiph informally, what moritz says
06:38 sisar many articles are proper nouns, like Pugs, November, v6, NQP, etc. which I think we need a wiki page for.
06:39 fglock joined #perl6
06:39 fglock o/
06:39 sisar Hmm, making small wiki pages for all the nouns is a good idea to begin with.
06:40 sisar fglock: \o
06:42 fglock I've been thinking about a problem with Perlito, it is getting too big for the browser (over 500k bytes),
06:43 fglock I think it needs two versions, one big and one small
06:44 fglock I'm thinking about reusing an existing "big" compiler for Perlito6-big
06:44 fglock I'll keep working on Perlito5-big
06:47 raiph fglock: "existing big compiler" -- as in one of rakudo, niecza, pugs?
06:48 fglock yes, and also STD + C code (ruoso & pmurias project)
06:49 fglock but I need to separate compiler from code-emitter, because Perlito is bootstrapped in multiple backends
06:51 fglock alternately, one of these projecs would slurp Perlito and get a Perl5 compiler
06:51 fglock projects
06:52 fglock sorear: how about a "niecza5" :)
06:54 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
06:54 sorear fglock: do elaborate
06:55 sorear fglock: I've toyed with the idea of stealing your p5 compiler for niecza, but it's way far down my TODO
06:57 b1rkh0ff joined #perl6
06:59 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 ?
07:00 sorear I tend to think SMOP should stay dead; diakopter et al's 6model/c is the new SMOP
07:04 fglock sorear: I just had this idea, I didn't think about the details
07:05 fglock let's see,
07:05 fglock there would be 4 compilers
07:05 fglock niecza is p6-big, perlito6 is p6-small
07:06 sorear fglock: what is the distinction between -big and -small ?
07:06 fglock perlito5 is p5-small, and (new) is perl5-big
07:06 sorear would any of these support eval?
07:06 fglock "-small" runs the compiler in the browser, it is small in size
07:06 fglock all of them support eval
07:07 fglock -small is used for "eval in the browser"
07:09 sorear I am not sure how anything which includes a full Javascript Perl 6 compiler can claim to be small.
07:12 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 :-)
07:12 fglock where 500k is $whatever-size
07:13 fglock or nqp-javascript, yes
07:13 sorear mm.
07:13 sorear well, if I were doing that
07:13 sorear the first thing I would kill is gather/take
07:13 sorear which has massive ripple effects to the point that the two would effectively no longer share code
07:14 sorear niecza is also not likely to support running on Javascript any time soon
07:16 fglock that's the point, the "big" compilers would not likely run in javascript
07:16 fglock but you can emit code that runs in javascript, and use perlito6 for eval()
07:19 sorear mmh.
07:19 fglock hmm - this is different from my initial idea already
07:20 fglock the initial idea was having all compilers fully retargetable
07:24 dalek niecza: 69f2cee | sorear++ | lib/ (2 files):
07:24 dalek niecza: A scheme for serializing CLR wrappers (fixes #117)
07:24 dalek niecza:
07:24 dalek niecza: Based on the generic reference serialization scheme.  Not foolproof;
07:24 dalek niecza: attempting to serialize a reference to a method will still blow up.
07:24 dalek niecza: review: https://github.com/sorear/niecza/commit/69f2cee35d
07:28 sisar p6eval bot, you now have a wikipage for yourself at http://wiki.perl6.org/p6eval. It explains how to push your buttons, or how not to push them too much :p
07:28 sisar Who the 'maintainer' for p6eval ?
07:28 diakopter moritz & sorear
07:29 sisar diakopter: thanks.
07:30 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 ''
07:30 p6eval rakudo 4904b0: OUTPUT«␤»
07:30 fglock it's difficult because STD uses a lot of modules
07:31 sorear down to 13 open niecza bugs.  of these, 4 I can't reproduce, 5 are arguably not bugs at all
07:32 sorear 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:33 sorear it might be easier insofar as it uses no modules
07:35 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
07:35 sorear moritz: merges?
07:36 moritz sorear: when two different edits occur in parallel
07:36 sorear cool
07:36 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.
07:38 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
07:38 moritz sorear: it seems the link you added isn't parsed as a link
07:39 moritz sorry, meant sisar
07:39 moritz mist ab
07:40 sisar moritz: fixed. It needs empty parens after the ]
07:43 fglock alternative idea: there is no perlito6-big; perlito5-big is written in perl6 and run in any existing perl6 compiler
07:45 fglock and perlito5-small is used to implement client-side eval()
07:47 sisar std: say "Hello world";
07:47 p6eval std 8632387: OUTPUT«ok 00:00 40m␤»
07:48 sisar what does the '40m' signify ?
07:49 araujo joined #perl6
07:50 sorear sisar: Peak memory usage in megabytes
07:50 sisar it took 40 megabytes to parse that ?
07:51 sisar oh wait, or is it 40 milli-megabytes ?
07:52 sisar m ~~ 'milli'
07:56 raiph sisar++ # p6eval wiki page
07:57 sorear sisar: it took 40 megabytes to parse that, including the fixed overhead of loading libc.so, libperl.so, Moose & friends, STD itself ...
07:59 * sisar afk
08:02 sergot joined #perl6
08:02 sergot hi o/
08:02 sergot :)
08:06 sorear o/ sergot
08:07 moritz we could remove that part of the output; it's pretty much always 40m these days
08:08 fglock is there any prototype impl of using local languages like "use v5" or "use Perl5" in perl6?
08:19 tadzik wow, that was an impressive coding spree
08:19 tadzik jnthn++
08:23 sorear fglock: in ways, yes.  modules can locally change the grammar (by exporting operators)
08:25 sorear 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 sorear fglock: niecza allows trapping into low-level code using Q:CgOp { ... }; it would have been just as easy to make the syntax use CgOp; ...
08:29 fglock would this work?  multi eval ($str, lang => 'Perl5') { ... }
08:31 sorear no, syntax in declarators needs to be :$lang = 'Perl5'
08:31 sorear I mean signatures
08:31 sorear also, that is wrong - defautl language for eval should be perl6
08:32 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)
08:32 tadzik oh wait, nvm
08:32 fglock sorear: that's why I declared "multi eval"
08:32 fglock to specialize for perl5
08:32 moritz then you probably want
08:33 moritz multi eval($str, :$lang! where 'Perl5') { }
08:37 raiph anyone else like the term metaDSL as much as I do?
08:38 sorear fglock: = declares a default parameter value
08:38 sorear it doesn't specializxe.
08:39 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!␤»
08:39 p6eval ..pugs: OUTPUT«*** ␤    Unexpected "where"␤    expecting trait, "=", default value, "-->" or ")"␤    at /tmp/MWgSYzbUsW line 1, column 26␤»
08:39 sorear perhaps better written as :lang("Perl5")
08:39 sorear avoids binding a useless name
08:40 fglock sorear: you mean instead of :lang<Perl5> ?
08:40 sorear no, I mean instead of :$lang! where 'Perl5'
08:40 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")
08:41 p6eval niecza v17-29-g69f2cee: OUTPUT«[31m===[0mSORRY![31m===[0m��Malformed parameter at /tmp/Sa7cTZLyPQ line 1:�------> [32mmulti eval($str, [33m�[31m:lang("Perl5")) { say "I am '$str' in $l[0m��Parse failed��»
08:41 p6eval ..pugs: OUTPUT«*** ␤    Unexpected "lang"␤    expecting space or ")"␤    at /tmp/BmZZU34saf line 1, column 19␤»
08:41 p6eval ..rakudo 4904b0: OUTPUT«===SORRY!===␤Malformed parameter␤at /tmp/qwLxGR6Y6p:1␤»
08:41 sorear raiph: metaDSL sounds like someone trying to be buzzword-compliant and would make me LESS likely to try the referenced thing.
08:42 sorear fglock: ah, doesn't work, sorry
08:42 fglock I have a starting point :)
08:43 fglock moritz++
08:44 raiph sorear: troo
08:47 grondilu joined #perl6
08:48 grondilu when I test zavolaj's module 'NativeCall', I get : Cannot locate symbol 'Argless' in native library ''
08:49 grondilu this is after running perl6 -I. t/01-argless.t in zavolaj directory.
08:54 grondilu 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␤␤»
08:54 p6eval ..pugs, niecza v17-29-g69f2cee:  ( no output )
08:55 grondilu p6: $_ = Buf.new: ^2; say $_ ~ .subbuf: 0, 1
08:55 p6eval niecza v17-29-g69f2cee: OUTPUT«[31m===[0mSORRY![31m===[0m��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…
08:55 p6eval ..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␤␤»
08:55 p6eval ..pugs: OUTPUT«*** No such subroutine: "&Buf"␤    at /tmp/sEXZdeD8BD line 1, column 1-17␤»
08:55 birdwindupbird joined #perl6
08:55 grondilu niecza: say Buf
08:55 p6eval niecza v17-29-g69f2cee: OUTPUT«[31m===[0mSORRY![31m===[0m��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…
08:56 grondilu ??
08:56 moritz grondilu: niecza doesn't have Buf.
08:57 moritz r: $_ = Buf.new: ^2; .say
08:57 p6eval rakudo 4904b0: OUTPUT«Buf:0x<00 01>␤»
09:00 grondilu p6: (class { has $.x; multi method new { self.new: :x(42) } }).new;
09:00 p6eval rakudo 4904b0: OUTPUT«(timeout)»
09:00 p6eval ..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…
09:00 p6eval ..pugs: OUTPUT«pugs: *** Can't modify constant item: VUndef␤    at /tmp/ENKSA7bVKv line 1, column 1␤»
09:01 fglock do you think the eval() idea is reasonable?
09:01 masak 早上好,#perl6的人。
09:02 fglock (plural "you")
09:02 sorear fglock: I don't understand the eval idea
09:02 fglock eval calls the p5-to-p6 compiler
09:02 buubot_backup fglock: ERROR: Can't locate object method "p6" via package "compiler" (perhaps you forgot to load "compiler"?) at (eval 20) line 1.
09:02 sorear masak: good morning #perl6 people?
09:03 fglock buubot_backup: it's not yet implemented :)
09:03 buubot_backup fglock: Couldn't match input.
09:03 fglock no problem :)
09:04 grondilu Anyone about this zavolaj error?   «Cannot locate symbol 'Argless' in native library ''»
09:05 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?
09:05 sorear grondilu: you've told zavolaj to look for a symbol named Argless, and it doesn't exist.
09:05 fglock and this works both in rakudo and niecza, it seems
09:06 grondilu intel
09:06 masak sorear: aye. sorear++
09:06 tadzik Linux, OSX?
09:06 grondilu Linux
09:06 tadzik how fresh is your Rakudo?
09:06 grondilu Linux blacky 3.3-6.slh.1-aptosid-686 #1 SMP PREEMPT Sun May 13 00:35:55 UTC 2012 i686 GNU/Linux
09:06 grondilu tadzik: quite fresh
09:06 sorear personally I suspect grondilu is misusing zavolaj
09:07 * 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
09:07 sorear look for occurences of Argless in your source code
09:07 sorear copy them here
09:07 sorear tell us what you mean
09:08 sorear I think you have incorrectly entered something
09:08 grondilu The Argless is in the test file.  I didn't write it.
09:08 tadzik hmm
09:08 tadzik there were issues with that, but they're long gone
09:08 grondilu sub Argless() is native('01-argless') { * }
09:08 tadzik grondilu: Zavolaj is fresh too, I guess?
09:09 tadzik grondilu: './01-argless' will probably fix this
09:09 grondilu from rakudo-star-2012.04
09:09 tadzik hmm
09:10 tadzik can you check if add ./ will fix this?
09:11 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.
09:11 grondilu nope, didn't fix it.
09:12 grondilu 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
09:12 tadzik I remember such an issue on linux, and it's been fixed a while ago
09:13 dalek niecza: 6833fdb | sorear++ | / (5 files):
09:13 dalek niecza: Add checkpoints to generated code to prevent the "warnings and some errors slide to a nearby call" failure (#120)
09:13 dalek niecza: review: https://github.com/sorear/niecza/commit/6833fdb79b
09:14 sorear probably most of you are quite happy to see that one. ;)
09:15 grondilu notice that it didn't even compile the lib
09:15 grondilu Oh sorry, it did.  But in the current directory, not in ./t
09:15 tadzik hm
09:16 sorear does anyone have anything they'd really like to see on Monday?
09:17 sorear Failure is not an option
09:17 sorear (borderline autopun?)
09:18 tadzik heh
09:19 REPLeffect joined #perl6
09:21 sorear sleep&
09:26 masak sorear: no, just a regular pun ;)
09:28 moritz n: class A { has @.a handles <push>; }; given A.new { .push: 'foo'; say .a.perl }
09:28 p6eval niecza v17-29-g69f2cee: OUTPUT«[31m===[0mSORRY![31m===[0m��Action method trait_mod:handles not yet implemented at /tmp/Ii9mbQB0Cq line 1:�------> [32mclass A { has @.a handles <push>[33m�[31m; }; given A.new { .push: 'foo'; say .a.[0m��Trait 0 not available on variables at /tmp/…
09:29 moritz sorear: I want delegation, at least the same case of listing method names. But I already told you :-)
09:31 birdwind1pbird joined #perl6
09:32 masak jnthn++! # http://6guts.wordpress.com/2012/05/26/switching-to-qregex-for-parsing-perl-6-source/
09:32 birdwind2pbird joined #perl6
09:45 jerome_ joined #perl6
10:01 tadzik spectest results on qbootstrap: https://gist.github.com/2793217
10:06 moritz would be interesting to know which ones come from custom operators
10:15 kresike joined #perl6
10:15 kresike hi all
10:16 masak kresike! \o/
10:16 kresike masak, o/
10:16 dalek nqp/qbootstrap: 2cd24d0 | moritz++ | src/HLL/Compiler.pm:
10:16 dalek nqp/qbootstrap: another attempt to get HLL::Compiler to the latest state
10:16 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/2cd24d0508
10:18 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 #perl6
10:30 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
10:30 phenny 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)
10:31 fglock how do I invoke a system command in rakudo/niecza?
10:31 jnthn run("le command")
10:31 fglock thanks
10:31 moritz fglock: shell('le command')
10:31 moritz run() is supposed not to invoke a shell
10:31 moritz and NYI
10:33 jnthn oh :)
10:34 fglock ok
10:35 fglock jnthn: I'm working on a proof-of-concept eval(:lang<Perl5>)
10:36 fglock using a perl5 to perl6 compiler
10:38 masak \o/
10:38 masak jnthn: good post-noon. :)
10:39 masak (Nicholas Clark)++ # p6l
10:43 moritz I'm glad a respected 5er wrote that, not a 6er :-)
10:44 jnthn fglock: Innerestin'
10:44 jnthn moritz: Seems I lost a few bits when doing that QHLL => HLL thing. D'oh.
10:44 jnthn moritz: Thanks for fixing.
10:46 jnthn Hmm...I get custom operators are busted, yes. That probably is to blame for various of those failures.
10:51 moritz is it worth trying to fix them auld way?
10:51 moritz or do they need to be redone anyway?
10:52 masak so, how does one build the new exciting qbootstrap branch?
10:53 masak I tried the obvious, checking it out and running `perl Configure.pl --gen-parrot`, but I got an error.
10:53 masak do I need to configure my own nqp specially somehow?
10:53 moritz masak: in nqp, 'git checkout qbootstrap'
10:53 masak right.
10:53 moritz and configure and install nqp
10:53 moritz then reconfigure rakudo, and 'make spectest'
10:53 masak reconfigure rakudo with which options?
10:54 jnthn moritz: I know how to fix them.
10:54 jnthn moritz: Will do it in a moment.
10:54 jnthn moritz: I want to refactor that stuff, but it can happen in the future.
10:55 moritz jnthn: ok
10:58 preflex_ joined #perl6
11:09 diakopter .
11:09 fglock I have a problem, if I define multi eval($str, :$lang! where 'perl5')
11:09 fglock then rakudo can't find eval :lang<perl6> anymore
11:10 masak diakopter: \o
11:10 moritz eeks, because eval is foolishly declared as an only sub
11:11 masak the sheer folly!
11:11 diakopter zoinks
11:11 moritz fglock: I'll make a workaround for you, hold on
11:12 dalek Perlito: 91820ec | (Flavio S. Glock)++ | perl6-eval.p6:
11:12 dalek Perlito: Perlito5 - add a simple impl of multi eval($str, :$lang! where "perl5")
11:12 dalek Perlito: review: https://github.com/fglock/Perlito/commit/91820ec7a5
11:12 fglock I've pushed my test
11:13 moritz fglock: https://gist.github.com/2793547
11:14 moritz r: https://gist.github.com/2793547
11:14 p6eval rakudo 4904b0: OUTPUT«4␤dummy p5 return value␤»
11:14 moritz this one will get the lexical context wrong for the p6 eval
11:14 moritz but it should serve as a workaround until I've patched rakudo's eval to be a multi
11:16 fglock ah, nice :)
11:18 masak moritz: http://news.ycombinator.com/item?id=4026711 -- might be of interest. "Iterated prisoner's dilemma contains evolutionary opponent dominating strategies"
11:19 moritz masak: yes, I've seen the title, but haven't got around reading it yet
11:19 masak :)
11:22 dalek rakudo/qbootstrap: a0ed8c0 | jnthn++ | src/Perl6/Grammar.pm:
11:22 dalek rakudo/qbootstrap: First crack at updating the code that adds new operators. This alone seems to fix O(15) of the failing test files.
11:22 dalek rakudo/qbootstrap: review: https://github.com/rakudo/rakudo/commit/a0ed8c0b71
11:29 dalek Perlito: 9ea3cc4 | (Flavio S. Glock)++ | / (3 files):
11:29 dalek Perlito: Perlito5 - simple perl6 eval($str, :$lang<perl5>) works!
11:29 dalek Perlito: review: https://github.com/fglock/Perlito/commit/9ea3cc4006
11:30 fglock moritz: https://raw.github.com/fglock/Perlito/master/perl6-eval.p6
11:31 aesundstrom joined #perl6
11:31 fglock now I just need to bootstrap the p5-to-p6 compiler in perl6, and then make it a perl6 module
11:32 fglock it's a minor problem :P
11:33 diakopter does it address the typical uses of eval, which is run code that returns objects or code that uses lexicals..?
11:33 diakopter objects in any variables
11:34 jnthn > my $pair = 'foo' => 'bar'; say $pair.WHAT
11:34 jnthn Str()
11:34 jnthn > my $pair = ('foo' => 'bar'); say $pair.WHAT
11:34 jnthn Pair()
11:35 jnthn Hmm. If anyone likes debugging EXPR... :)
11:35 * jnthn afk for a little bit
11:35 tadzik heh
11:35 diakopter jnthn: sounds like a job for me
11:36 * diakopter builds qbootstrap nqp
11:37 tadzik diakopter++
11:38 moritz sounds like a precedence problem
11:38 sisar phenny: tell phenny, now you have a Wikipage too at http://wiki.perl6.org/phenny !
11:38 phenny Hey, I'm not as stupid as Monty you know!
11:39 moritz try  say (my $pair = 'foo' => 'bar').perl
11:39 sisar who maintains phenny ?
11:39 diakopter itself
11:40 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
11:40 sisar moritz: i moved your blurb to the new page. :)
11:40 diakopter invoking methods on lexicals?
11:41 diakopter I guess the object model doesn't translate fully.
11:41 moritz sisar: ok, great
11:41 fglock do we have something that lets me get lexicals in the caller?
11:41 moritz OUTER should work, yes
11:41 moritz if not, file bug reports :-)
11:42 moritz there might also be some rakudo specfic hacks that we currently use in rakudo's eval()
11:43 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.
11:44 diakopter mwilson@u10:~/src/rakudo$ git checkout qbootstrap
11:44 diakopter error: pathspec 'qbootstrap' did not match any file(s) known to git.
11:44 moritz diakopter: did you 'git fetch' first?
11:44 moritz in rakudo, that is?
11:44 diakopter no; what does that do
11:44 moritz get the data from the server
11:44 moritz that's a part of what 'git pull' does internally
11:44 diakopter I did both just now; same error
11:44 moritz just a sec
11:49 jnthn r: say (my $pair = 'foo' => 'bar').perl
11:49 p6eval rakudo 4904b0: OUTPUT«"foo" => "bar"␤»
11:49 jnthn > say (my $pair = 'foo' => 'bar').perl
11:49 jnthn Confused at line 1, near "say (my $p"
11:49 jnthn Yeah, something fishy there.
11:49 diakopter oh hm. `git branch` just shows * nom
11:49 MayDaniel joined #perl6
11:50 diakopter git branch -a doesn't have qbootstrap
11:51 diakopter hm, maybe I cloned the wrong branch initially
11:51 * diakopter tries fresh recloning
11:51 jnthn diakopter: How does your [remote "origin"] section look in your .git/config?
11:52 jnthn In particular, does it look like: fetch = +refs/heads/*:refs/remotes/origin/*
11:52 jnthn s/look like/have a line like/
11:52 diakopter yes
11:53 diakopter maybe because I cloned using the readonly git:: url
11:53 diakopter anyway, it found the qbootstrap branch in the fresh clone
11:54 fglock moritz: can you give me an example of how to use OUTER to peek at the caller vars?
11:54 whiteknight joined #perl6
11:55 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 $/␤»
11:55 moritz oh, you probably want CALLER
11:55 moritz r: sub f { say CALLER::.keys }; { my $x = 3; f() }
11:55 p6eval rakudo 4904b0: OUTPUT«call_sig $x $_ $*DISPATCHER␤»
11:56 moritz and you might need to walk the CALLER's OUTER
11:57 moritz this one just gives you the immediate caller's scope
11:57 diakopter ugh. now rakudo's Configure is failing.  https://gist.github.com/2793679 and it repeats the last three lines infinitely
11:58 moritz diakopter: it is likely that your shell does not expand ~ in that position
11:58 moritz diakopter: in which case you should use $HOME instead
11:59 diakopter same problem
11:59 moritz hm
11:59 moritz thing is, it should never say "Building NQP ..."
12:00 moritz that error is new to me :(
12:00 diakopter :/
12:01 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.
12:02 diakopter I had to swap the order of --with-nqp and --with-parrot
12:02 Chillance joined #perl6
12:03 diakopter seems odd Configure.pl would require options in a particular order
12:03 fglock moritz: thanks!
12:03 sisar what's benefit of having named parameters if they are required in a particular order !
12:04 moritz diakopter: it *is* odd
12:06 [particle]1 joined #perl6
12:10 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 rakudo/nom: e756635 | moritz++ | src/core/control.pm:
12:10 dalek rakudo/nom: make &eval a multi
12:10 dalek rakudo/nom:
12:10 dalek rakudo/nom: that way it is easier for fglock++ to experiment with p5 eval
12:10 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e756635b9e
12:13 diakopter in Configure.pl
12:14 diakopter line 59
12:15 diakopter how that would cause my problem, though...
12:16 brrt joined #perl6
12:16 dalek Perlito: 1eb7e0c | (Flavio S. Glock)++ | perl6-eval.p6:
12:16 dalek Perlito: Perlito5 - perl6 eval-perl5: add comments
12:16 dalek Perlito: review: https://github.com/fglock/Perlito/commit/1eb7e0cc3f
12:16 moritz diakopter: will fix later
12:20 birdwindupbird joined #perl6
12:24 PacoAir joined #perl6
12:25 kaare_ joined #perl6
12:32 dalek rakudo/qbootstrap: 053013e | jnthn++ | src/Perl6/Metamodel/MROBasedMethodDispatch.pm:
12:32 dalek rakudo/qbootstrap: find_method should cope with unknown adverbs (in this case, :no_trace). Fixes the two broken protoregex test files.
12:32 dalek rakudo/qbootstrap: review: https://github.com/rakudo/rakudo/commit/053013e970
12:34 dalek Perlito: ae3f389 | (Flavio S. Glock)++ | perl6-eval.p6:
12:34 dalek Perlito: Perlito5 - perl6-eval.p6: add notes
12:34 dalek Perlito: review: https://github.com/fglock/Perlito/commit/ae3f389785
12:35 * diakopter starts to hear the birds chirp outside and wonders should I get 1 hour of sleep before the sun rises
12:36 fglock diakopter++ :)
12:37 fglock birds chirping here too, but it's an ok hour to be awake
12:38 tadzik here it's only Daft Punk chirping
12:45 dalek nqp/qbootstrap: 813a2d5 | jnthn++ | src/HLL/Grammar.pm:
12:45 dalek nqp/qbootstrap: Bring preclim handling fix in to EXPR; diakopter++.
12:45 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/813a2d5937
12:53 jnthn tadzik: If you have tuits and want to help on qbootstrap, feel free to look at the S26 failures.
12:56 tadzik jnthn: not really tuity at the moment, but I should be able to allocate some time later on
12:57 jnthn tadzik: Yeah, no hurry
12:57 dalek rakudo/qbootstrap: 75c0e9c | moritz++ | Configure.pl:
12:57 dalek rakudo/qbootstrap: [Configure] do not gen-nqp when --with-nqp is provided
12:57 dalek rakudo/qbootstrap:
12:57 dalek rakudo/qbootstrap: Fix by diakopter++
12:57 dalek rakudo/qbootstrap: review: https://github.com/rakudo/rakudo/commit/75c0e9c438
12:57 tadzik I'm ill and I have C++ code to write :/
12:57 tadzik dunno what's worse ;)
12:57 jnthn s/and/because/ ?
12:57 jnthn ;)
12:57 moritz oops, meant to push that to nom. But it's going to be get merged anyway :-)
12:58 jnthn Aye
13:02 fglock so eval :lang<perl5> actually works
13:02 * fglock makes popcorn to celebrate
13:02 wolfman2000 joined #perl6
13:02 moritz \o/
13:03 moritz fglock++
13:04 dalek nqp/qbootstrap: 7c5d69d | jnthn++ | src/QRegex/Cursor.nqp:
13:04 dalek nqp/qbootstrap: ident could accidentally ord past end of string; check for this. Fixes at least one of the Rakudo regressions.
13:04 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/7c5d69db0a
13:04 masak fglock++
13:06 fglock popcorn didn't work, trying again # burned
13:06 jnthn r: [...].perl.say
13:06 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␤␤»
13:06 jnthn oh...
13:06 jnthn std: [...]
13:06 p6eval std 8632387: OUTPUT«ok 00:00 40m␤»
13:06 jnthn n: [...]
13:06 p6eval niecza v17-30-g6833fdb:  ( no output )
13:06 jnthn n: [...].perl.say
13:06 p6eval niecza v17-30-g6833fdb: OUTPUT«()␤»
13:07 moritz erm
13:07 jnthn That should parse the term, no?
13:07 moritz is that parsed as a reduction of infix:<...>?
13:07 moritz or the term?
13:07 jnthn oh!
13:07 jnthn Maybe :)
13:08 jnthn yeah, it would be :)
13:08 jnthn OK, back to the drawing board on figuring out the ... term parsing bug then :)
13:08 diakopter sub {...} fails
13:09 jnthn Right
13:09 jnthn It ain't clear to me why
13:10 diakopter perhaps notably, say ... gives Confused, but
13:11 diakopter 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␤␤»
13:11 jnthn Yeah, same underlying issue I expect
13:11 jnthn oh
13:11 jnthn perl6 --rxtrace -e "say ..."
13:11 * diakopter didn't know about --rxtrace
13:12 jnthn Don't trust it for large things, but here it is helpful
13:12 jnthn Anyway, something is very wrong in term
13:12 Psyche^ joined #perl6
13:13 jnthn dotty should absolutely have a shorter declarative prefix than term:sym<...>
13:13 jnthn In fact, it should probably even be ruled out.
13:13 jnthn term:sym<dotty> I meant
13:14 * masak .oO( ...and thus the art of debugging LTM logic was discovered... )
13:15 jnthn .oO( Not Fucking Awesome )
13:15 jnthn r: say chr(46)
13:15 p6eval rakudo e75663: OUTPUT«.␤»
13:17 masak jnthn: but luckily, you can always turn it into a Damn Fucking Awesome...
13:17 jnthn hmm, curious
13:17 jnthn token term:sym<...> { <sym> <args> }
13:17 jnthn STD has a ? on the <args>
13:17 masak I would expect it to.
13:17 masak unless <args> can be empty, which feels odd.
13:17 jnthn Yeha, it has a | <?>
13:18 masak even in STD?
13:18 jnthn no, I meant in Rakudo
13:18 masak right.
13:18 masak different factorings.
13:18 masak I like STD's better.
13:18 masak feels easier to say "it doesn't have <args>" than "it has <args>... and they're empty"
13:20 jnthn It does make the actions easier to do it the Rakudo way.
13:20 diakopter I don't understand why MATCH is called
13:20 jnthn To create a Match object.
13:20 diakopter after Calling term returns, I mean
13:21 jnthn It's not very interesting info usually
13:21 diakopter after Calling rad_number.. Calling before
13:21 jnthn diakopter: Yeah, but it should never get into all of that lot.
13:21 masak jnthn: oh. carry on, then.
13:21 diakopter why would it create a MATCH object when it failed to match term
13:22 jnthn Making it <args>? does fix things here.
13:23 jnthn r: say chr(40)
13:23 p6eval rakudo e75663: OUTPUT«(␤»
13:24 jnthn Ah
13:24 jnthn I just read the NFA produced for args
13:25 jnthn Yeah, it's rong
13:25 jnthn State 1 is
13:25 jnthn push $P108, 2
13:25 jnthn push $P108, 40
13:25 jnthn push $P108, 2
13:25 jnthn push $P108, 4
13:25 jnthn push $P108, 32
13:25 jnthn push $P108, 4
13:26 diakopter I thought states had 4 entries
13:26 jnthn 3 each
13:26 jnthn There's two gruops of 3 in there
13:26 jnthn | '(' <semiarglist> ')'
13:26 jnthn | [ \s <arglist> ]
13:26 jnthn | <?>
13:26 jnthn That's args
13:26 jnthn The 2,40,2 is "if ( goto state 2"
13:27 jnthn The 4,32,4 is "if \s goto state 4"
13:27 jnthn There should be something for the <?>
13:27 masak ah!
13:28 masak 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? :)
13:28 masak absolutely.
13:29 diakopter so args can already be empty/null
13:29 jnthn diakopter: Yes, but the NFA doesn't consider "nothing else" as a pass
13:30 jnthn So it trims
13:30 jnthn And thus the ... branch is considered fail
13:32 moritz 4 passing TODOs in qbootstrap :-)
13:32 jnthn oooh
13:32 moritz and 12 failing test files
13:32 moritz of which 5 just have one or two failures, the is mostly compile time errors
13:33 jnthn moritz: Can you paste your latest fail list for me?
13:33 moritz jnthn: just a sec
13:33 jnthn moritz: I don't have ICU here.
13:33 jnthn And I guess you do
13:33 jnthn diakopter: Found what's going on.
13:33 jnthn I think.
13:33 moritz jnthn: http://perlpunks.de/paste/show/4fc0dbb4.981.26c
13:34 moritz that both latest rakudo and nqp
13:35 jnthn oddness, http://perlpunks.de/paste/show/4fc0dbb4.981.26c
13:35 jnthn oops
13:35 jnthn oddness, t/spec/S32-io/IO-Socket-INET.t passes here
13:36 moritz jnthn: it regularly fails on that host when run in parallel spectest
13:36 moritz well, not always, but often
13:36 jnthn moritz: OK, I'll ignore it then
13:36 moritz curiously on another machine of mine it always passes, even in parallel
13:36 moritz yes, ignore it
13:37 jnthn diakopter: <?> just gets dropped
13:37 diakopter is that the/a bug?
13:37 jnthn er, not quite
13:37 jnthn Hm
13:38 jnthn wait, I need to read the compiled output of the regex too...
13:38 jnthn OK, it lives on in some way, as
13:38 jnthn alt2234_2:
13:38 jnthn alt2234_end:
13:43 nebuchadnezzar joined #perl6
13:52 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␤»
13:52 masak is there an operator that only flip-flops once?
13:52 masak same question for Perl 5. :)
13:53 jnthn diakopter: Got a patch for it.
13:53 masak r: .say if !(my $q)++ && $_ % 10 == 3 ff $_ % 10 == 6 for 1..30
13:53 p6eval rakudo e75663:  ( no output )
13:54 masak r: .say if $_ % 10 == 3 && !(my $q)++ ff $_ % 10 == 6 for 1..30
13:54 p6eval rakudo e75663: OUTPUT«3␤4␤5␤6␤»
13:54 masak guess that works.
13:55 jnthn Maybe done more readably with grep, a state var and last though.
13:55 Mark__ joined #perl6
13:57 masak agreed.
13:57 masak ended up with `perl -nlE 'print if /^.sub/ && !(state $q)++ .. /^.end/'`
13:57 masak this prints the first subroutine of some PIR output ;)
13:58 diakopter perl?
13:59 masak oh, I guess I could've used Perl 6 here, too.
14:00 diakopter Perl 5 has state?
14:00 JimmyZ_ joined #perl6
14:01 dalek nqp/qbootstrap: 382602b | jnthn++ | src/QRegex/P6Regex/Actions.nqp:
14:01 dalek nqp/qbootstrap: Change the way <?> is handled so that it does not terminate LTM. Fixes parsing of C<...>.
14:01 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/382602b754
14:01 masak diakopter: yep, since about Perl 5.12, I think.
14:01 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).
14:02 diakopter got another one I could golf?
14:03 cognominal_ joined #perl6
14:03 jnthn diakopter: Did you build with ICU?
14:03 diakopter hm
14:04 jnthn diakopter: 3 of the tests left broken are POD related.
14:04 jnthn 2 are to do with assertion handling.
14:04 jnthn 2 are from S05 and need ICU
14:04 jnthn S05-mass/named-chars.rakudo and t/spec/S05-mass/rx.rakudo
14:04 masak sorry, state has been in Perl 5 since 5.10
14:04 masak http://perldoc.perl.org/5.10.0/perldelta.html#state()-variables
14:05 tyatpi joined #perl6
14:05 diakopter nope
14:05 * diakopter installs icu and rebuilds parrot
14:07 diakopter hm, libicu48 was already installed
14:07 diakopter maybe it wants libicu-dev
14:08 masak yep.
14:11 jnthn r: "x255"   !~~ m/x (\d+): <?{$/[*-1] < 255}> /
14:11 p6eval rakudo e75663:  ( no output )
14:11 jnthn r: say "x255"   !~~ m/x (\d+): <?{$/[*-1] < 255}> /
14:11 p6eval rakudo e75663: OUTPUT«True␤»
14:11 jnthn r: say "x254"   !~~ m/x (\d+): <?{$/[*-1] < 255}> /
14:11 p6eval rakudo e75663: OUTPUT«False␤»
14:12 masak < 255 ?
14:12 masak so FE is ok, but FF isn't?
14:13 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.
14:14 jnthn Ooh, I hadn't measured memory yet
14:15 moritz but last I looked it was quite a bit slower
14:15 JimmyZ_ yep, about 2/5 slower
14:15 moritz usually takes about 120s for the first stage (parse + actions), it's around 200 on qbootstrap
14:16 masak well, lower memory consumption might end up faster for people on whose systems compiling CORE starts swapping hopelessly ;)
14:16 masak and I guess there are still optimizations to be made in QRegex.
14:16 moritz aye to both
14:16 * jnthn knows at least 2 places badly needing improvement in QRegex
14:18 spider-mario joined #perl6
14:18 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"
14:19 JimmyZ_ jnthn++, that's too fast, which is unexpected
14:20 masak 太快了!
14:20 moritz one could almost get the impression that jnthn knows the rakudo and nqp codebases quite well... :-)
14:22 moritz memory while compiling the setting is 800M here, and not peaked yet
14:22 * jnthn guesses 64 vs 32
14:22 sjn \o
14:23 moritz 1G after the parse stage
14:23 sjn jnthn: did you get my mail?
14:23 tadzik sjn: o/
14:24 jnthn sjn: yes
14:24 sjn jnthn: do tell if there's anything I can help with, regarding that. :)
14:24 moritz and grows to 1.5G during post and pir stages :/
14:29 jnthn moritz: How's that compare to nom?
14:30 masak sjn! \o/
14:37 sjn pmichaud: btw, are you still up for the p5-mop hackathon thing?
14:42 brrt joined #perl6
14:45 moritz jnthn: roughly the same
14:47 moritz 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 moritz which doesn't make any sense, I know
14:48 NamelessTee joined #perl6
14:51 masak in a perl6 -n loop, is $*IN.ins supposed to count each iteration, just like $. does in Perl 5?
14:52 masak because it doesn't. :(
14:56 moritz I think .ins only works well with .get, not with .lines
14:56 moritz http://perlpunks.de/paste/show/4fc0ef18.97d.26c updated qbootstrap test summary
14:56 moritz again ignore the socket tests
14:57 masak I think .ins should measure the number of records read, regardless of method.
14:57 * masak submits rakudobug
14:57 moritz masak: it's not so easy
14:58 moritz masak: because it depends on the reification model used by for/map
14:58 masak I was just getting to that.
14:58 masak seems -n doesn't run stuff until I ^D
14:58 masak that's... unfortunate.
15:00 masak for a value of "unfortunate" that means "I'm pretty sure that's wrong".
15:00 masak who implemented this -n stuff? :P
15:01 masak moritz: is there something about `eager` that's still NYI that makes Rakudo -n not run code ASAP?
15:10 brrt joined #perl6
15:15 masak or are you saying "it's a feature, not a bug"?
15:17 dalek nqp/qbootstrap: 0197389 | jnthn++ | src/QRegex/ (2 files):
15:17 dalek nqp/qbootstrap: Build and use the protoregex table in a much smarter way. Immediately shaves 25% off NQP test suite run time.
15:17 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/0197389428
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.
15:17 jnthn masak: We already know map is too eager.
15:17 jnthn masak: It's on Pm's todo list already.
15:17 moritz yes, there's a submitted bug for that
15:18 moritz and it's the .munch($argc * $count) thing that was discussed yesterday or so
15:18 jnthn Right.
15:20 masak oh, ok.
15:20 masak but $*IN.ins is almost-but-not-quite orthogonal, I guess.
15:23 moritz no
15:24 moritz .lines calls .get internally
15:24 moritz so on a strictly lazy iteration, .ins is always in sync with the iterator
15:26 masak i.e. I'll merge this ticket with the one that already talks about map being too eager?
15:27 moritz +1
15:28 * masak makes it so
15:28 colomon maybe I'm being dense, but I don't see how .ins can make sense with .lines.
15:29 colomon unless you're looking for the total number of lines
15:30 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 :)
15:30 masak .ins should work like $. , IMHO.
15:32 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
15:32 p6eval rakudo e75663: OUTPUT«0␤»
15:33 nebuchadnezzar joined #perl6
15:33 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␤»
15:33 moritz OH
15:33 moritz it's $*ARGS vs. $*IN
15:33 colomon who'd win?
15:34 * moritz
15:35 masak if $*ARGS.ins works like I want, I'll happily let moritz win ;)
15:38 moritz erm, ARGFILES, sorry
15:38 masak woddeva.
15:40 moritz but it doesn't seem to work either
15:40 masak right. for the above reasons.
15:42 moritz I'm not convinced
15:42 moritz because it always says 0
15:42 moritz but it really should say the last line number all over, no?
15:43 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␤»
15:44 moritz the problem is that IO::ArgFiles inherits from IO
15:44 moritz and has it own $!ins
15:44 moritz but not its own accessor
15:44 moritz IO::ArgFiles.ins returns $!ins from class IO, which is still 0
15:45 preflex joined #perl6
15:45 masak huh.
15:45 dalek nqp/qbootstrap: 25680d9 | jnthn++ | src/ (3 files):
15:45 dalek nqp/qbootstrap: 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 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/25680d9dca
15:45 sporous joined #perl6
15:45 moritz masak: fun, eh?
15:45 masak sounds like something's askew somewhere...
15:45 moritz but a single-character fix
15:46 masak \o/
15:51 dalek rakudo/qbootstrap: 51f1b93 | moritz++ | src/core/IO/ArgFiles.pm:
15:51 dalek rakudo/qbootstrap: fix IO::ArgFiles.ins
15:51 dalek rakudo/qbootstrap: review: https://github.com/rakudo/rakudo/commit/51f1b934ac
15:51 moritz now it returns the number of the last line all over, as I expected :-)
15:51 moritz r: for lines() { print $*ARGFILES.get }
15:51 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␤␤»
15:51 moritz r: for lines() { print $*ARGFILES.ins }
15:51 p6eval rakudo e75663: OUTPUT«00000000000000000000000»
15:53 preflex joined #perl6
15:54 sporous joined #perl6
15:57 * masak adds all this to le ticket
16:16 sporous joined #perl6
16:17 preflex_ joined #perl6
16:20 preflex_ joined #perl6
16:20 spider-mario joined #perl6
16:24 nebuchadnezzar joined #perl6
16:24 dalek perl6-bench: e4d4e94 | (Geoffrey Broadwell)++ | bench:
16:24 dalek perl6-bench: Refactor test definitions to remove more nearly-duplicated code; needs a large whitespace realignment, separated into next commit
16:24 dalek perl6-bench: review: https://github.com/japhb/perl6-bench/commit/e4d4e943bf
16:24 dalek perl6-bench: 71c3c79 | (Geoffrey Broadwell)++ | bench:
16:24 dalek perl6-bench: Pure whitespace realignment after previous commit's refactoring
16:24 dalek perl6-bench: review: https://github.com/japhb/perl6-bench/commit/71c3c79899
16:24 dalek perl6-bench: ede2944 | (Geoffrey Broadwell)++ | / (2 files):
16:24 dalek perl6-bench: Notice when test processes get terminated by SIGINT: stop processing tests and just show summary
16:24 dalek perl6-bench: review: https://github.com/japhb/perl6-bench/commit/ede29444ae
16:28 cognominal___ joined #perl6
16:36 REPLeffect joined #perl6
16:40 JimmyZ_ good night
16:41 cognominal joined #perl6
16:42 masak 晚安, 卓明亮
16:49 dalek rakudo/qbootstrap: e22f54f | jnthn++ | src/Perl6/Grammar.pm:
16:49 dalek rakudo/qbootstrap: Remove a couple of unrequied lookaheads, saving almost 40,000 calls to before while parsing CORE.setting.
16:49 dalek rakudo/qbootstrap: review: https://github.com/rakudo/rakudo/commit/e22f54f9b8
16:49 dalek rakudo/qbootstrap: 5bec1f1 | jnthn++ | src/Perl6/Grammar.pm:
16:49 dalek rakudo/qbootstrap: Remove a now-unrequired <!before ...> in rad_number, meaning that it gets a declarative prefix (and thus trims sooner).
16:49 dalek rakudo/qbootstrap: review: https://github.com/rakudo/rakudo/commit/5bec1f1841
16:49 dalek rakudo/qbootstrap: 1b72f38 | jnthn++ | src/Perl6/Grammar.pm:
16:49 dalek rakudo/qbootstrap: Micro-optimization to desigilname.
16:49 dalek rakudo/qbootstrap: review: https://github.com/rakudo/rakudo/commit/1b72f380c2
16:49 dalek rakudo/qbootstrap: 12b2cd7 | jnthn++ | / (2 files):
16:49 dalek rakudo/qbootstrap: Merge branch 'qbootstrap' of github.com:rakudo/rakudo into qbootstrap
16:49 dalek rakudo/qbootstrap: review: https://github.com/rakudo/rakudo/commit/12b2cd70aa
16:51 * masak .oO( of all the kinds of <!before>, the unrequired one is the most tragic... )
17:08 am0c joined #perl6
17:19 rindolf joined #perl6
17:19 rindolf Hi all. Happy Shavuoth.
17:20 masak happy שבועות, rindolf.
17:20 rindolf masak: תודה.
17:30 diakopter jnthn: the NFA quantifications [that I did] could use a perf look.  I think there could be some unnecessary states in there.
17:31 jnthn diakopter: Even if there are, it's not all that hot in the benchmark.
17:32 moritz parsing speed now much closer to what it was before
17:32 jnthn moritz: Do you have the two numbers to hand?
17:34 moritz jnthn: used to be around 120s, is now 148s (but on a bit faster machine, no direct comparison yet)
17:41 mucker joined #perl6
17:43 jnthn moritz: OK.
17:43 jnthn I'm working on a few more improvements here.
17:44 jnthn 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
17:44 jnthn *its
17:45 diakopter 1600 virt
17:56 Antichoc joined #perl6
17:57 moritz hm, 211s on the slower machine
17:57 moritz I'll re-time nom
18:05 jnthn wtf.
18:06 jnthn Somehow match objects get mutated by...something
18:06 moritz ok, the nom timing on that machine is 167s, not 120
18:06 moritz for the parse+actions stage
18:06 jnthn r: say 167 / 211
18:06 p6eval rakudo e75663: OUTPUT«0.791469␤»
18:06 moritz r: say (211-167) / 167
18:06 p6eval rakudo e75663: OUTPUT«0.263473␤»
18:07 jnthn That's with latest stuff?
18:08 moritz yes
18:18 tadzik jnthn: what's up with S26? spectests failing?
18:18 tadzik ah, I see it
18:18 jnthn yeah
18:30 sorear good * #perl6
18:32 diakopter o/
18:33 masak sorear! \o/
18:38 pmurias joined #perl6
18:38 pmurias hi
18:39 pmurias fglock: having perlito5-big cooperating with a perl6 compilers seems a good idea to me
18:40 fglock blogged: http://blogs.perl.org/users/flavio_s_glock/2012/05/implementing-perl6-evalstr-lang.html
18:40 fglock I wish I could write more clearly :(
18:41 fglock pmurias: hi!
18:41 dalek nqp/qbootstrap: f8f164f | jnthn++ | src/ (2 files):
18:41 dalek nqp/qbootstrap: Optimize MATCH and CAPHASH to construct less objects.
18:41 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/f8f164f33e
18:42 fglock sorear: I've got this message from niecza: "System.DllNotFoundException: libMonoPosixHelper.dylib" - is it a problem with my mono installation? (osx)
18:47 moritz man, the British and their English. Shouldn't it be "construct fewer objects"? :-)
18:48 moritz 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 #perl6
18:52 diakopter nearly all usa-ians use less for fewer
18:53 birdwindupbird joined #perl6
18:53 diakopter well, most at least
18:54 fglock pmurias: did you see the eval impl? I can't run it on niecza, only rakudo
18:55 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".
18:56 pmurias what's the problem with niecza? i made it run the "real" perl5
18:56 fglock yes, I know :)
18:56 pmurias i mean why can't you hook it in?
18:56 fglock it gives me a "libMonoPosixHelper" missing message
18:57 fglock googling now
19:01 fglock yay - it works now # missing LD_LIBRARY_PATH
19:02 sorear fglock: libMonoPosixHelper.dylib is an internal part of mono.  Some part of your install is borked beyond my ability to help.
19:03 dalek Perlito: ec8949c | (Flavio S. Glock)++ | perl6-eval.p6:
19:03 dalek Perlito: Perlito5 - perl6-eval.p6: fix for niecza
19:03 dalek Perlito: review: https://github.com/fglock/Perlito/commit/ec8949cb62
19:04 PacoAir joined #perl6
19:04 fglock sorear: thanks, I found the problem, it's fixed now
19:04 stepnem joined #perl6
19:07 sorear \o/
19:12 fgomez joined #perl6
19:14 jnthn moritz: Also, less takes less keystrokes to type ;)
19:15 jnthn I'm not particularly concious about it, though.
19:17 masak Language Log has written lots on it.
19:17 masak on the silliness of "6 items or fewer", for example.
19:18 sorear meh, does it really matter?  jnthn meant what he meant and it looks like everyone understood him
19:20 masak well, this is the constant tension between letting non-standard grammar pass, and pointing it out.
19:20 jnthn This one isn't really non-standard these days, though.
19:20 rjbs joined #perl6
19:20 benabik joined #perl6
19:20 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 masak jnthn: agreed. it's very widespread.
19:21 rjbs jnthn++ # just read qbootstrap post
19:21 jnthn masak: Does Swedish distinguish the too?
19:21 masak rjbs! \o/
19:21 masak jnthn: yes, as I said above, it's quite a bit worse here because the word for "less" also means "smaller".
19:21 masak jnthn: so you get sentences like "There's smaller people here nowadays".
19:22 jnthn rjbs: Happy you liked it :)
19:22 jnthn masak: Hmm...I can't say I've noticed an abundance of such mistakes.
19:23 jnthn 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 #perl6
19:24 jnthn r: say 12.7 / 67
19:24 p6eval rakudo e75663: OUTPUT«0.189552␤»
19:25 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 spider-mario same in french
19:26 spider-mario « 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.
19:26 spider-mario “fewer persons” ↔ « moins de personnes »
19:26 spider-mario “less cheese” ↔ « moins de fromage »
19:26 jnthn So, 19% of our parse/actions time is spent creating Match objects.
19:27 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".
19:27 spider-mario « beaucoup »
19:27 spider-mario oh
19:27 jnthn r: say 7 / 67
19:27 p6eval rakudo e75663: OUTPUT«0.104478␤»
19:27 masak spider-mario: basically, jnthn would enjoy your system better :)
19:27 jnthn And over 10% in <.ws>
19:27 rjbs left #perl6
19:29 diakopter I should've qualified: "nearly all usa-ians" - including myself, usually, unless I happen to be in a very erudite mood.
19:30 masak un*fewer* :P
19:31 spider-mario phonetically, there is “phew” in “fewer”
19:31 spider-mario thus, I suggest we use “fewer” mainly when having many is not desirable
19:31 spider-mario :)
19:32 spider-mario “‘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
19:33 masak spider-mario: :P
19:33 sorear here in San Diego, I don't think anyone uses 'much' as anything except an adverb
19:35 jnthn diakopter: OK, good to know.
19:36 diakopter jnthn: the rxtrace output must be truncated for -e '/\x[21,21]/'
19:36 diakopter it says Unrecognized backslash sequence, but it only barely gets into the / /
19:37 diakopter I don't see it getting anywhere near a backslash rule
19:38 diakopter is it possible it's truncated?
19:39 diakopter the last four lines are: Calling quote:sym</ /> Calling LANG Calling target Calling pos
19:39 jnthn Possibly.
19:39 jnthn Oh...maybe the trace doesn't descend into the nested cursor or something.
19:39 jnthn er, nested langauge I mean
19:40 diakopter yeah; seems to be. it doesn't descend with a successfully parsed regex
19:43 diakopter I'll investigate that
19:44 jnthn diakopter: does \xBEEF work?
19:44 jnthn diakopter: It's just the \x[...] form that's busted?
19:45 diakopter corect
19:45 jnthn Maybe check out the NFA for hexints
19:45 jnthn Inherited from HLL::Grammar iirc
19:53 diakopter oh, I guess there's not an NFA constructor for delimiter repetition %
19:57 tadzik jnthn: looks like substr() is broken
19:57 tadzik jnthn: https://gist.github.com/2795109
20:00 diakopter subst()?
20:00 tadzik yeah
20:04 moritz or is it just variable interpolation into regexes that's broken?
20:04 tadzik oh, true that
20:07 moritz just try something like  my $s = ' '; say ('a ' ~~ /a$s/).to
20:08 moritz src/Perl6/Grammar.pm still has some cases of PAST::Regex
20:08 moritz I thought those should all be QAST::Regex now?
20:08 masak hehe -- "a$s" :)
20:09 tadzik that gives -3
20:09 moritz aka "match failed"
20:09 tadzik right
20:09 masak -1 is "group failed", -2 is "rule failed", IIRC
20:09 tadzik so -3 is "all aboard the ship of failure"? ;)
20:10 moritz I think masak is talking about .from
20:10 moritz I think .to is always -3 for failed matches
20:10 moritz but I might be wrong
20:12 jnthn tadzik: Wait, is that NQP code or Perl 6?
20:13 masak moritz: oh! could be.
20:13 rindolf left #perl6
20:15 cognominal_ joined #perl6
20:15 tadzik jnthn: nqp
20:15 moritz I was wrong about PAST::Regex still appearing in Grammar.pm. I was in the wrong branch
20:15 tadzik jnthn: straight from Actions.pm
20:16 jnthn tadzik: ah, ok
20:24 kurahaupo joined #perl6
20:30 pernatiy joined #perl6
20:34 moritz nqp: use NQPHLL; sub f($x = PAST::Block.new()) { }; f()
20:34 p6eval nqp:  ( no output )
20:35 moritz nqp: use NQPHLL; sub f($x = PAST::Block.new(:blocktype<method>)) { }; f()
20:35 p6eval nqp:  ( no output )
20:37 moritz somehow that Null PMC access'es in 'make test' in nqp
20:38 moritz Null PMC access in find_method('new') to be exact
20:43 moritz nqp: use NQPHLL; our sub f($x = PAST::Block.new(:blocktype<method>)) { }; f()
20:43 p6eval nqp:  ( no output )
20:43 moritz nqp:  our sub f($x = PAST::Block.new(:blocktype<method>)) { }; f()
20:43 p6eval nqp:  ( no output )
20:44 moritz indeed, locally
20:44 moritz $ ./nqp -e 'use NQPHLL; sub f($x = PAST::Block.new(:blocktype<method>)) { }; f()'
20:44 moritz Null PMC access in find_method('new')
20:45 moritz if I had to guess, I'd say that default values get the wrong OUTER or something
20:45 cognominal joined #perl6
20:45 diakopter nqp command line NPMCA with just use NQPHLL; PAST::Block.new()
20:46 moritz hm
20:46 moritz what 'use' do I have to do to get it?
20:47 jnthn That lives in PASTRegex today
20:47 jnthn (which doesn't have anything to do with Regex any more...just PAST)
20:48 moritz looking at the generated PIR, the lookup for PAST goes through GLOBAL and not OUTER anyway :-)
20:49 jnthn ah...
20:51 moritz ok, when I add a 'use PASTRegex;' to QRegex/P6Regex/Actions.nqp, t/nqp/49-regex-interpolation.t lives
20:51 moritz but still fails 4 tests
20:51 jnthn They may be realted to what I'm looking into now
20:54 jnthn In tadzik's example, it's compling a$s as if $ is end of string
20:56 skyheights joined #perl6
20:57 diakopter I can't even figure out how to always enable tracing for the new cursor created in .LANG
21:00 jnthn diakopter: It's a property of the meta-class rather than of the cursor iirc
21:01 jnthn yeah
21:01 jnthn $grammar.HOW.trace-on($grammar) if %adverbs<rxtrace>;
21:01 diakopter right, but ..
21:01 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
21:01 dalek nqp/qbootstrap: 8982bd8 | moritz++ | src/QRegex/P6Regex/Grammar.nqp:
21:01 dalek nqp/qbootstrap: use PASTRegex; avoids death in the interpolation tests
21:01 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/8982bd8c01
21:02 jnthn diakopter: Put it in LANG
21:02 diakopter ok I'll try it
21:03 jnthn moritz: Will test that patch with mine to see if it helps
21:03 jnthn diakopter: oh, you'll need to add a .trace method to NQPClassHOW
21:03 masak the channel is rife with work tonight. it's nice to see.
21:03 diakopter knew it
21:03 jnthn diakopter: So you can introspect whether tracing is currently on.
21:04 jnthn 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. :)
21:04 diakopter I like to celebrate when I think something for myself; it's rare enough. :)
21:04 jnthn DISREGARD THAT FEAR OUR PRODUCTIVITY
21:04 jnthn :P
21:05 masak steamroller-driven development
21:06 jnthn moritz: yay
21:06 dalek nqp/qbootstrap: afa9f9c | jnthn++ | src/HLL/Grammar.pm:
21:06 dalek nqp/qbootstrap: Optimize MARKED and MARKER a little, and make it less PIR-y.
21:06 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/afa9f9cf24
21:06 dalek nqp/qbootstrap: 594b59d | jnthn++ | src/stage0/ (8 files):
21:06 dalek nqp/qbootstrap: Update bootstrap with lastest improvements.
21:06 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/594b59d097
21:06 dalek nqp/qbootstrap: 0063bcd | jnthn++ | src/NQP/Grammar.pm:
21:06 dalek nqp/qbootstrap: Fix the prefix for nqpvar, so we parse /a$s/ correctly (tadzik++ for discovering the issue).
21:06 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/0063bcd8bc
21:07 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...
21:12 moritz jnthn: so, how do we enable the regex tests again?
21:14 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?
21:14 jnthn moritz: oh, wait...you mean in nqp?
21:14 moritz jnthn: yes
21:14 jnthn Sorry, I thought you meant S05...
21:15 moritz and I guess p6regex-test can go too?
21:15 jnthn yes
21:16 jnthn moritz: nqp t/qregex/01-qregex.t works for me.
21:16 moritz jnthn: here it complains that dependency 'qregex' has no build rule
21:16 jnthn moritz: How are you trying to run it? Makefile?
21:16 moritz -qregex-test: $(NQP_EXE) qregex
21:16 moritz +qregex-test: $(NQP_EXE)
21:16 moritz jnthn: yes
21:16 jnthn oh!
21:16 jnthn Yeah, that's why we get different outcomes ;)
21:16 jnthn Yeah, toss the dependency.
21:17 jnthn We always build qregex now.
21:17 dalek nqp/qbootstrap: 26382e7 | moritz++ | t (13 files):
21:17 dalek nqp/qbootstrap: remove p6regex tests (use qregex-test instead)
21:17 dalek nqp/qbootstrap:
21:17 dalek nqp/qbootstrap: also remove bogus dependency on qregex for qregex-test
21:17 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/26382e7ef8
21:17 jnthn tadzik: I think Pod should be in better shape with latest NQP.
21:18 tadzik jnthn: yeah, rebuilding stuff now
21:18 tadzik you just commit faster than I compile :)
21:33 arnsholt Heh. Learn you a Haskell has PHP humor in it ^_^
21:40 masak I've now read http://developers.slashdot.org/story/12/05/21/2020223/perl-5160-released -- interesting how much of the discussion is about Perl 6.
21:40 masak I actually find the whole discussion mostly positive.
21:40 masak there are people giving arguments against Perl 6, and people coming up and defending it in refreshing ways.
21:41 masak 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 nqp/qbootstrap: 5e21bba | jnthn++ | src/ops/nqp.ops:
21:41 dalek nqp/qbootstrap: A little speedup to NFA evaluation.
21:41 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/5e21bbaa13
21:47 tadzik jnthn: yep, that fixed the test :)
21:47 jnthn tadzik: All the Pod ones work for you now?
21:47 tadzik jnthn: well, the only ones that were broken before
21:48 tadzik I mean, I didn't check the rest of them
21:48 tadzik I'm now rebuilding nqp again, to keep up-to-date
21:48 donaldh joined #perl6
21:50 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:�------> [32msub foo[33m�[31m() { }; multi foo() { };[0m��»
21:51 sorear n: sub foo() { 1 }; multi foo() { 2 }; say foo
21:51 p6eval niecza v17-30-g6833fdb: OUTPUT«1␤»
21:51 sorear n: sub foo() { 1 }; proto foo() { }
21:51 p6eval niecza v17-30-g6833fdb: OUTPUT«Potential difficulties:�  &foo is declared but not used at /tmp/80RFLdrmaO line 1:�------> [32msub foo[33m�[31m() { 1 }; proto foo() { }[0m��»
21:51 jnthn r: sub foo() { }; multi foo() { };
21:51 p6eval rakudo e75663: OUTPUT«===SORRY!===␤Redeclaration of routine foo␤at /tmp/slsAM9E8_W:1␤»
21:54 spider-mario masak: too bad too few of them are aware of the plan to have the CPAN usable from Perl 6.
21:56 masak spider-mario: it would make a big difference.
21:56 spider-mario indeed, it’s nothing like the Python 3 move.
21:56 spider-mario it’s better in many ways.
21:56 spider-mario :)
21:57 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:58 dalek nqp/toqast: 40e7584 | masak++ | / (2 files):
21:58 dalek nqp/toqast: [QAST::Operations] implemented named arguments
21:58 dalek nqp/toqast:
21:58 dalek nqp/toqast: Named parameters were already implemented, so making a
21:58 dalek nqp/toqast: call with named args works now.
21:58 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/40e7584f51
21:58 dalek nqp/toqast: d124e96 | masak++ | / (3 files):
21:58 dalek nqp/toqast: implemented named arguments for 'callmethod'
21:58 dalek nqp/toqast:
21:59 sorear There's a plan to make CPAN usable from Perl 6?
21:59 dalek nqp/toqast: Same code as for 'call'. Will refactor in the next commit.
21:59 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/d124e9616c
21:59 dalek nqp/toqast: cd60db0 | masak++ | src/QAST/Operations.nqp:
21:59 dalek nqp/toqast: [QAST::Operations] factored out common loop body
21:59 dalek nqp/toqast:
21:59 dalek nqp/toqast: Simple "extract subroutine" for ya. But it's only gonna get
21:59 dalek nqp/toqast: worse, once we do slurpies, too.
21:59 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/cd60db0b87
21:59 dalek nqp/toqast: 2b55922 | masak++ | / (2 files):
21:59 dalek nqp/toqast: added test for call to block with slurpy
21:59 dalek nqp/toqast:
21:59 dalek nqp/toqast: The functionality was already there.
21:59 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/2b55922b38
21:59 dalek nqp/toqast: b66b2e1 | masak++ | / (2 files):
21:59 dalek nqp/toqast: [QAST::Operations] implement flattened arguments
21:59 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/b66b2e1f8f
21:59 masak \o/
21:59 tadzik good stuff :)
21:59 tadzik masak++
21:59 sorear There's a plan to make CPAN usable from Perl 6?
21:59 masak yes.
22:00 masak 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
22:00 masak diakopter: that's for when you want to integrate inline *code*, I guess.
22:01 masak diakopter: CPAN integration is more about integrating modules.
22:01 jnthn r: say 14.11 / 66.61
22:01 p6eval rakudo e75663: OUTPUT«0.211830␤»
22:01 masak which is found in S11.
22:01 sorear most of S11 was written before we understood that some things are possible and not others.
22:05 masak things in the spec that have crept below the line of implementability should be marked as such and eventually removed or revised.
22:09 diakopter in git, how do I list what commits I have pending to push
22:11 diakopter nm
22:11 sorear git log origin/master...HEAD
22:11 sorear something like that
22:12 diakopter hmm. why does it list the entire history of the branch
22:13 diakopter nm, I did git log origin/qbootstrap..qbootstrap and that shows my 1 commit
22:15 sorear n: say ([Z]())
22:15 p6eval niecza v17-30-g6833fdb: OUTPUT«␤»
22:15 sorear n: say ([Z]()).perl
22:15 p6eval niecza v17-30-g6833fdb: OUTPUT«().list␤»
22:18 dalek nqp/qbootstrap: 9befba5 | diakopter++ | src/ (2 files):
22:18 dalek nqp/qbootstrap: propagate --rxtrace (and its trace depth for indents) to inner languages
22:18 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/9befba5aa2
22:23 diakopter as usual, jnthn++ for doing most of the work.
22:28 masak diakopter++
22:31 diakopter !seen TimToady
22:32 diakopter .seen TimToady
22:32 phenny diakopter: I last saw timtoady at 2012-05-24 16:32:10 UTC on #perl6
22:33 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
22:33 diakopter it failed for the first two
22:37 diakopter /\x[21]/ works, but /\x[21,21]/ is unrecognized
22:38 jnthn diakopter: Does a tactfully placed {} help?
22:38 jnthn (e.g. after we parse "\x["
22:38 jnthn )
22:39 diakopter I don't konw what you mean
22:40 jnthn diakopter: In the rule that parses this, try adding a {} after it has parsed the [
22:40 diakopter ohh
22:40 jnthn diakopter: {} forces end of LTM prefix
22:40 jnthn diakopter: If that makes it work, it means the NFA generation is busted somehow (probably the separator issue)
22:40 diakopter trying
22:45 diakopter yep that makes it work
22:46 diakopter since I did the NFA quant, I guess I'll try to extend it to cover % and %%
22:46 diakopter unless someone redid it since I touched it...
22:47 jnthn diakopter: I think %% may be desugared before we got to the NFA
22:47 jnthn diakopter: No, nobody redid it afaik :)
22:48 dalek nqp/toqast: 39a8dad | masak++ | / (2 files):
22:48 dalek nqp/toqast: [QAST::Operations] implement :flat :named
22:48 dalek nqp/toqast:
22:48 dalek nqp/toqast: Parrot makes this work even without the :named, but it's
22:48 dalek nqp/toqast: nice to have it there, I guess.
22:48 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/39a8dad585
22:52 diakopter hunh. %/%% appear to be left-associative
22:52 jnthn Huh?
22:52 jnthn It's a modifier on a quantifier
22:53 jnthn [ <.ws> <separator> ]?
22:53 diakopter not how it's factored in the grammar
22:53 jnthn Parsed by that in quantified_atom
22:53 jnthn What grammar are you looking at?
22:54 diakopter ..and separator can have another quantified atom in it
22:54 diakopter with potentially another separator
22:54 diakopter oh, I guess that makes it right-associative, nm
22:54 jnthn :)
23:00 masak is something like `<atom>+ % <sep1> % <sep2>` legal?
23:01 jnthn No
23:01 jnthn But you could do
23:01 masak std: / \d+ % ',' % ';' /
23:01 p6eval std 8632387: OUTPUT«[31m===[0mSORRY![31m===[0m�Unrecognized regex metacharacter % (must be quoted to match literally) at /tmp/txAjB9i_TM line 1:�------> [32m/ \d+ % ',' %[33m�[31m ';' /[0m�Unable to parse regex; couldn't find final '/' at /tmp/txAjB9i_TM line 1:�------> [32m/ \…
23:01 jnthn <atom>+ % <foo>+ % <bar>
23:01 sorear std: / x+ % x+ % x+ /
23:01 p6eval std 8632387: OUTPUT«ok 00:00 41m␤»
23:01 masak jnthn: hm, but I meant the other thing.
23:02 masak [<atom>+ % <foo>]+ % <bar>
23:02 jnthn No, it'll parse as <atom>+ % [<foo>+ % <bar>]
23:03 masak *nod*
23:03 jnthn It's consistent with the "can't quantify a quantifier" thing.
23:03 diakopter <atom>+ % <sep1>+ % <sep2> is, according to Grammar.pm
23:03 diakopter with the second +
23:03 renormalist joined #perl6
23:03 ashleydev joined #perl6
23:03 jlaire joined #perl6
23:03 sorear it's consistant with our using LL parsers instead of LR
23:04 sorear right associativity comes out naturally from STD-like parsing systems
23:05 masak I guess.
23:08 [particle]1 joined #perl6
23:08 diakopter are % and %% working in rakudo now?  I can't make it work
23:09 diakopter or nqp
23:09 jnthn It must be...we're using it in various places in Rakudo's grammar.
23:09 jnthn What are you trying?
23:10 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 "␤»
23:10 jnthn r: say '1,2,3' ~~ /\d+ % ','/
23:10 p6eval rakudo e75663: OUTPUT«q[1,2,3]␤␤»
23:10 jnthn diakopter: It goes after a quantifier.
23:10 diakopter ergh, duh.
23:20 masak good night, #perl6
23:21 diakopter o/
23:24 jnthn Time for sleep, I think
23:27 jnthn o/
23:42 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:55 b1rkh0ff joined #perl6
23:58 aesundstrom joined #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo