»ö« 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 $lParse failed» | ||
..pugs: OUTPUT«***  Unexpected "lang" expecting space or ")" at /tmp/BmZZU34saf line 1, column 19» | |||
..rakudo 4904b0: OUTPUT«===SORRY!===Malformed parameterat /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 1Unhandled 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 1Unhandled 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«4dummy 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«34561314151623242526» | ||
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«3456» | ||
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 fooat /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
|