Camelia, the Perl 6 bug

IRC log for #parrot, 2013-02-16

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:01 benabik joined #parrot
01:13 dduncan left #parrot
01:32 benabik joined #parrot
01:59 kid51 joined #parrot
01:59 Eddward joined #parrot
02:05 kid51_ joined #parrot
02:11 Reini joined #parrot
04:29 benabik joined #parrot
04:49 preflex_ joined #parrot
06:39 tadzik joined #parrot
07:09 Mike-PerlRecruiter_ joined #parrot
07:20 cotto dukeleto: ping
07:52 cotto blog post posted
07:52 cotto the published version has more emphasis on improving performance than the draft
07:52 cotto Thanks for the feedback.
07:52 cotto http://reparrot.blogspot.com/2​013/02/its-been-quiet_15.html
07:58 cotto and bed
10:59 dalek nqp: ba13a07 | (Paweł Murias)++ | src/core/NQPMu.pm:
10:59 dalek nqp: Fix comment.
10:59 dalek nqp: review: https://github.com/perl6/nqp/commit/ba13a0756b
12:28 PacoAir joined #parrot
12:33 xcombelle joined #parrot
13:02 zby_home joined #parrot
13:45 kid51_ joined #parrot
14:21 Psyche^ joined #parrot
14:43 Eddward joined #parrot
15:04 Reini joined #parrot
15:10 benabik joined #parrot
15:47 dalek nqp: d579a30 | (Paweł Murias)++ | t/nqp/59-nqpop.t:
15:47 dalek nqp: Add tests for isnull for things that aren't nulls.
15:47 dalek nqp: review: https://github.com/perl6/nqp/commit/d579a30b4b
16:37 contingencyplan joined #parrot
16:44 dalek rakudo/optimizer-void-context: a10db62 | moritz++ | src/Perl6/Optimizer.pm:
16:44 dalek rakudo/optimizer-void-context: try to track void context in the optimizer
16:44 dalek rakudo/optimizer-void-context:
16:44 dalek rakudo/optimizer-void-context: does not work yet, it seems to consider all string literals in void context.
16:44 dalek rakudo/optimizer-void-context: No idea why :(
16:44 dalek rakudo/optimizer-void-context: review: https://github.com/rakudo/rakudo/commit/a10db62a91
16:50 bouncy joined #parrot
17:08 dalek rakudo/optimizer-void-context: f41f314 | moritz++ | src/Perl6/Optimizer.pm:
17:08 dalek rakudo/optimizer-void-context: be a bit less wrong about void context detection
17:08 dalek rakudo/optimizer-void-context:
17:08 dalek rakudo/optimizer-void-context: still does not work at all :(
17:08 dalek rakudo/optimizer-void-context: review: https://github.com/rakudo/rakudo/commit/f41f31418c
17:09 Reini joined #parrot
17:42 xcombelle joined #parrot
17:52 cotto ~~
17:59 dalek rakudo/optimizer-void-context: 15219f7 | moritz++ | src/Perl6/Optimizer.pm:
17:59 dalek rakudo/optimizer-void-context: fix logic error in void context detection
17:59 dalek rakudo/optimizer-void-context:
18:00 dalek rakudo/optimizer-void-context: still has quite a fe false positives
18:00 dalek rakudo/optimizer-void-context: review: https://github.com/rakudo/rakudo/commit/15219f77ae
18:03 muixirt joined #parrot
18:03 muixirt hi
18:11 kid51 joined #parrot
18:13 muixirt cotto:  so winxed and lua aren't supported anymore?
18:14 cotto muixirt: lua definitely isn't.  winxed may not be a problem because it compiles to pir without much fuss.
18:17 muixirt sad, but both (?) maintainers of these languages gave up anyway.
18:26 dalek nqp: 97fd401 | moritz++ | src/QAST/ (3 files):
18:26 dalek nqp: [QAST dumper] include a bit more info
18:26 dalek nqp: review: https://github.com/perl6/nqp/commit/97fd401ee9
18:27 dukeleto ~~
18:29 mberends joined #parrot
18:31 cotto hio dukeleto
18:31 dukeleto cotto: howdy
18:31 dukeleto muixirt: "giving up" and "not having time to contribute" are not quite the same thing
18:32 dukeleto cotto: so much action in parrot, i can barely keep up
18:34 cotto dukeleto: "may you live in interesting times"
18:37 dukeleto cotto: indeed
18:37 mberends rurban: does potion:p2 parse anything? I've cloned it, passed make test, but when running ./p2 -V <testscript> it says "-- parsed -- code nil" :-(
18:37 dukeleto such as https://github.com/Benvie/continuum "A next-generation JavaScript (ES6) Virtual Machine written in last generation JavaScript (ES3)"
18:38 rurban no, the p2 parser is still in dev. so far it always returns P2, the interp object
18:38 rurban I had it working parsing subs and simple expr, but threw it away.
18:39 mberends ok, thanks. I read that you were considering a different parser, possibly Marpa.
18:39 rurban mberends: yes, either marpa or extending leg/peg, with a simple eval/jitted state machine as in maru. still researching
18:40 Reini joined #parrot
18:40 cotto dukeleto: prepare to enter bizarrot world.
18:40 mberends rurban: I have some ideas of ow to write a Pratt parser in C, and wondered if you would be interested in exploring that direction.  I'm very impressed with Pratt and made some initials designs.
18:40 cotto dukeleto: what's the best way to resurrect the p5-based ops2c?
18:40 rurban mberends: this decision will affect a bottom-up marpa/yacc-like grammar, or a top-down peg grammar
18:41 cotto *bizzaro
18:41 rurban Pratt is super nice, yes. Should be easily made dynamic
18:41 mberends Pratt is top down operator precedence, like Crockford's in JSLint.
18:41 cotto though bizarrot would be a good portmanteau bizarre and parrot
18:42 dukeleto cotto: do you know the sha1 of a commit that has a version of ops2c that you want?
18:42 rurban yes, but marpa's earley optims are also good, and easier to write
18:42 cotto dukeleto: yup
18:42 rurban maru has both
18:42 cotto git checkout -b ops2cpl-was-here a5077a54eb23471f861a98e96e612b5ad81b1e7c
18:42 rurban mberends: http://piumarta.com/tmp/maru/
18:42 dukeleto cotto: git checkout a5077a54eb23471f861a98e -- path/to/ops2c # methinks
18:43 mberends rurban: thanks, I'll read it.  I'll fork potion:p2 and experiment separately during the next week or so.
18:43 dukeleto cotto: the -- tell checkout to interpret the rest as filepaths to checkout at the given sha1
18:43 rurban mberends: I'll probably write something better, an extendable peg (similar as parrot's PGE), but in a fast vm and the state machine possibly jitted
18:43 * dukeleto assumes that if he is wrong, Benabik will correct me :)
18:44 dukeleto There are so many VM's these days. Like a swarm of locusts they are.
18:44 cotto dukeleto: thanks
18:44 mberends rurban: ok, gotta try all approaches until one works really well
18:45 muixirt dukeleto: sorry, i didn't want to imply anything particular
18:45 rurban mberends: But a parsable super-simple p5 peg grammar for the start would be nice.
18:46 mberends yeah, my earlier experiments stalled because they were not super simple enough
18:46 kid51 cotto: You could go back to before 762a0f20, I think.
18:47 kid51 In that commit, bacek posted notice that tools/build/ops2c.pl was deprecated
18:47 dalek rakudo/optimizer-void-context: d501814 | moritz++ | src/Perl6/Optimizer.pm:
18:47 dalek rakudo/optimizer-void-context: track declaration bits in the QAST
18:48 dalek rakudo/optimizer-void-context: review: https://github.com/rakudo/rakudo/commit/d501814e27
18:50 cotto kid51: you seem to be right.  I'll keep digging to find a commit where ops2c.pl was in active use.
18:53 dukeleto muixirt: frankly, I am worried about NotFound because I haven't been able to get ahold of him in a while
18:53 dukeleto muixirt: his last Github activity is 8 months ago: https://github.com/NotFound?tab=activity
18:53 cotto hopefully he managed to get a job, though it's really rough in Spain
18:58 dukeleto so, can somebody explain sixparrot to me? I just don't have the time to read days of IRC logs to put it together
18:58 dukeleto i see lots of PMCs getting deleted, presumably because Rakudo doesn't use them?
18:59 cotto dukeleto: yup
18:59 cotto same deal for ops
19:03 muixirt cotto: do dynops go away? they are a hindrance for jitting, right?
19:04 cotto muixirt: no.  nqp needs them and we can't even think about moving them into Parrot (if that's even a good thing) until 6model is also in Parrot.
19:06 cotto pmichaud also said that nqp's ops change fairly regularly.
19:07 Eddward joined #parrot
19:08 Mike-PerlRecruiter_ joined #parrot
19:11 muixirt cotto: i wonder why some rakudo folks demand a jit compiler if it isn't feasible with nqp/rakudo
19:12 cotto muixirt: there's no particular reason that it can't eventually work or that they won't get one for free with nqp-on-jvm, it's just not something that Parrot can do quickly.
19:16 muixirt cotto: well dynops are black boxes for parrot, so how could it possibly jit these ops? There is no interface or api that enables parrot to say to nqp/rakudo "Hey jit these ops yourself" or is there?
19:18 dukeleto muixirt: there is no jit. Anywhere.
19:22 muixirt dukeleto: it is there! somewhere in your git repo :-)
19:24 dukeleto muixirt: it exists just before the 1.7.0 release
19:25 dukeleto muixirt: but it is not a good JIT. I have to agree with whiteknight. Yes, it kind of worked. But it was unmaintainable**2
19:26 cotto It wasn't the kind of jit you'd see in something like Chrome or Firefox.
19:36 dukeleto cotto: this kind of reminds me of M0: http://asmjs.org/spec/latest/
19:40 dukeleto who is interested in being a #gsoc mentor ?
19:40 Reini joined #parrot
19:47 dalek rakudo/optimizer-void-context: 9244510 | moritz++ | src/Perl6/Optimizer.pm:
19:47 dalek rakudo/optimizer-void-context: use %!worrying mechanism for string constants in void context
19:47 dalek rakudo/optimizer-void-context: review: https://github.com/rakudo/rakudo/commit/9244510d3c
19:55 dalek nqp: b1258d7 | jnthn++ | tools/ (2 files):
19:55 dalek nqp: Revert "Merge remote-tracking branch 'origin/spacey'"
19:55 dalek nqp:
19:55 dalek nqp: This reverts commit 1db6167740f7306a0e3acf04ccb15dfcc27c3dcb, reversing
19:55 dalek nqp: changes made to c9bc4a25ba2ca57e3642dbe870da31fd1b661322.
19:55 dalek nqp: review: https://github.com/perl6/nqp/commit/b1258d7c12
19:55 dalek nqp: 0514fec | jnthn++ | src/NQP/ (2 files):
19:55 dalek nqp: Remove a now-unused option.
19:55 dalek nqp: review: https://github.com/perl6/nqp/commit/0514fec9f2
19:55 dalek nqp: 1e0a374 | jnthn++ | src/NQP/Actions.pm:
19:55 dalek nqp: Remove a redundant load.
19:55 dalek nqp: review: https://github.com/perl6/nqp/commit/1e0a374c0a
19:57 dalek nqp: c6832d5 | jnthn++ | src/NQP/Actions.pm:
19:57 dalek nqp: Add a way to specify a custom regex lib.
19:57 dalek nqp:
19:57 dalek nqp: Useful for nqp-jvm while it only has the runtime part of it.
19:57 dalek nqp: review: https://github.com/perl6/nqp/commit/c6832d5b63
19:59 dukeleto maybe we should just rewrite Parrot with Inline::Fortran https://github.com/kenneth-k/Inline-Fortran
20:09 cotto dukeleto: accepting patches
20:11 Reini joined #parrot
20:12 muixirt dukeleto: good idea, there are so many retired baby boomers with lots of time on their hands ;-)
20:12 cotto rurban: could you please fix your irc client?
20:12 cotto (assuming that Reini is also you)
20:13 moritz does parrot have a noop op?
20:15 cotto moritz: yup
20:16 moritz what's its name? noop?
20:16 cotto moritz: it's a core op
20:16 cotto yes
20:16 moritz ok, great
20:17 cotto The implementation looks very efficient.
20:17 mtk joined #parrot
20:20 dukeleto noop is op # 0
20:20 dukeleto iirc
20:21 dukeleto muixirt: exactly! We must put those COBOL/Fortran fingers to work :)
20:21 cotto dukeleto: it's 1 for some reason.  0 is traditional.
20:22 dukeleto Fortran is still *the* language in numerical computing, with C++ being second
20:23 dukeleto people spent possibly thousands of human-years optimizing FORTRAN code. They ain't throwing it away any time soon.
20:23 dukeleto which is why Inline::Fortran is so interesting
20:24 dukeleto particle: ping
20:24 rurban cotto: Sorry, that's my macbook air. yes
20:25 Reini joined #parrot
20:25 dukeleto GSoC is coming around the corner again. Anybody have ideas for project or want to help?
20:25 Reini left #parrot
20:25 dalek rakudo/optimizer-void-context: 7636b79 | moritz++ | src/Perl6/Actions.pm:
20:25 dalek rakudo/optimizer-void-context: give string literal QAST nodes a Match object
20:25 dalek rakudo/optimizer-void-context: review: https://github.com/rakudo/rakudo/commit/7636b7925a
20:26 cotto dukeleto: I'm not sure how I feel about gsoc this year.  It's pretty important to direct any tuits we have at improving Parrot's performance quickly and gsoc is usually for medium-term projects.
20:27 dalek Heuristic branch merge: pushed 1000 commits to nqp/PackfileView by gerdr
21:02 benabik joined #parrot
21:03 cotto hio benabik
21:04 benabik 'lo cotto
21:06 allison cotto/Coke: which branch of which github repo is active (i.e. where should I put non-destructive multi changes)
21:06 allison or at least, what should I branch off of?
21:06 cotto allison: it's hard not to say "master"
21:06 cotto ;)
21:07 allison cotto: well, I'm headed in the direction of removing multi entirely
21:07 moritz sixparrot branch then?
21:07 allison cotto: but the first steps are just removing it from places where it doesn't do anything anyway
21:07 cotto I'm not sure of the status of sixparrot.  I'd like to see it merge as soon as coke++ is ready.
21:07 moritz last I tried, nqp and rakudo worked fine on top of it
21:07 cotto moritz: same here
21:08 allison (well, where it doesn't do anything except spend a lot of processing cycles to get the same answer as a simple C condition
21:09 allison coke's sixparrot branch? or the one in parrot/parrot?
21:09 cotto allison: they're the same now
21:09 allison aye, but will they remain the same?
21:09 allison or are people working on coke's branch?
21:09 allison or are people working on the parrot/parrot branch?
21:09 cotto parrot/parrot
21:10 allison ok, I'll switch to that one
21:10 cotto coke just started in a fork because we hadn't decided to officially rip things out at the time
21:10 allison sure, it made sense
21:11 cotto yes
21:11 cotto just a race condition
21:18 cotto I want to take this time to send a nice gift basket to whomever documented ops2pm
21:18 moritz I'm sure git blame can tell you
21:18 cotto unsurprisingly, it's kid51++
21:22 allison nostalgia: http://use.perl.org/use.perl.or​g/_chromatic/journal/35333.html
21:23 benabik "There are languages specifically optimized for generating the Fibonacci sequence"
21:24 cotto benabik: the sixparrot gets rid of our fact op.
21:24 cotto *branch
21:24 benabik cotto: He was, there, referring to Haskell.
21:27 dalek rakudo/optimizer-void-context: c24440a | moritz++ | src/Perl6/Optimizer.pm:
21:27 dalek rakudo/optimizer-void-context: detect Int and Num literals in void context
21:27 dalek rakudo/optimizer-void-context:
21:27 dalek rakudo/optimizer-void-context: Does not trigger yet, probably because they have no .node info.
21:27 dalek rakudo/optimizer-void-context: Also replace the constant QAST node with a null op
21:27 dalek rakudo/optimizer-void-context: review: https://github.com/rakudo/rakudo/commit/c24440a636
21:27 dalek rakudo/optimizer-void-context: 89c7e57 | moritz++ | src/Perl6/ (2 files):
21:27 dalek rakudo/optimizer-void-context: give numeric constant QAST nodes a .node
21:27 dalek rakudo/optimizer-void-context:
21:27 dalek rakudo/optimizer-void-context: now Int and Num literals warn in void context
21:27 dalek rakudo/optimizer-void-context: review: https://github.com/rakudo/rakudo/commit/89c7e570bc
21:28 bouncy joined #parrot
21:30 arnsholt cotto: Reading your blog makes the TeX part of my brain think \frenchspacing, but good interesting reading =)
21:32 cotto arnsholt: thanks
21:41 dalek rakudo/nom: 932bc53 | (Tobias Leich)++ | src/Perl6/Grammar.pm:
21:41 dalek rakudo/nom: Apparent subscript will be treated as regex
21:41 dalek rakudo/nom:
21:41 dalek rakudo/nom: Throw the same warning as STD does for things like
21:41 dalek rakudo/nom: @var[0], $var{a} and $var<a> in regexes.
21:41 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/932bc53183
22:04 dalek rakudo/optimizer-void-context: f6a731c | moritz++ | src/Perl6/Optimizer.pm:
22:04 dalek rakudo/optimizer-void-context: warn when inlining constant expressions in void context
22:05 dalek rakudo/optimizer-void-context: review: https://github.com/rakudo/rakudo/commit/f6a731c2f2
22:24 dalek parrot/sixparrot: 50053ee | allison++ | src/pmc/undef.pmc:
22:24 dalek parrot/sixparrot: Remove multidispatch from undef equality tests.
22:24 dalek parrot/sixparrot: review: https://github.com/parrot/parrot/commit/50053eee22
22:25 allison apparently gained half a second on the rakudo test suite, though that could be completely random interference
22:27 cotto sounds like it's well within the margin of error
22:27 cotto but it's not slower
22:28 cotto allison++ for checking
22:58 dalek parrot/sixparrot: e932aec | allison++ | src/pmc/sub.pmc:
22:58 dalek parrot/sixparrot: Remove multidispatch from sub equality vtable.
22:59 dalek parrot/sixparrot: review: https://github.com/parrot/parrot/commit/e932aec9ee
22:59 kid51 joined #parrot
23:51 silug joined #parrot
23:52 dalek nqp/target-pbc: 2d6a387 | (Gerhard R)++ | / (4 files):
23:52 dalek nqp/target-pbc: add --target=pbc to nqp
23:52 dalek nqp/target-pbc:
23:52 dalek nqp/target-pbc: the factoring of the code isn't perfect, but it does work
23:52 dalek nqp/target-pbc: review: https://github.com/perl6/nqp/commit/2d6a3872e2

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

Parrot | source cross referenced