|
Parrot 5.0.0 "Johnny Five Alive" | parrot.org/ | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC Set by moderator on 23 January 2013. |
|||
|
00:01
benabik joined
01:13
dduncan left
01:32
benabik joined
01:59
kid51 joined,
Eddward joined
02:05
kid51_ joined
02:11
Reini joined
04:29
benabik joined
04:49
preflex_ joined
06:39
tadzik joined
07:09
Mike-PerlRecruiter_ joined
|
|||
| cotto | dukeleto: ping | 07:20 | |
| blog post posted | 07:52 | ||
| the published version has more emphasis on improving performance than the draft | |||
| Thanks for the feedback. | |||
| reparrot.blogspot.com/2013/02/its-b...et_15.html | |||
| and bed | 07:58 | ||
| dalek | p: ba13a07 | (Paweł Murias)++ | src/core/NQPMu.pm: Fix comment. |
10:59 | |
|
12:28
PacoAir joined
12:33
xcombelle joined
13:02
zby_home joined
13:45
kid51_ joined
14:21
Psyche^ joined
14:43
Eddward joined
15:04
Reini joined
15:10
benabik joined
|
|||
| dalek | p: d579a30 | (Paweł Murias)++ | t/nqp/59-nqpop.t: Add tests for isnull for things that aren't nulls. |
15:47 | |
|
16:37
contingencyplan joined
|
|||
| dalek | kudo/optimizer-void-context: a10db62 | moritz++ | src/Perl6/Optimizer.pm: try to track void context in the optimizer does not work yet, it seems to consider all string literals in void context. No idea why :( |
16:44 | |
|
16:50
bouncy joined
|
|||
| dalek | kudo/optimizer-void-context: f41f314 | moritz++ | src/Perl6/Optimizer.pm: be a bit less wrong about void context detection still does not work at all :( |
17:08 | |
|
17:09
Reini joined
17:42
xcombelle joined
|
|||
| cotto | ~~ | 17:52 | |
| dalek | kudo/optimizer-void-context: 15219f7 | moritz++ | src/Perl6/Optimizer.pm: fix logic error in void context detection still has quite a fe false positives |
17:59 | |
|
18:03
muixirt joined
|
|||
| muixirt | hi | 18:03 | |
|
18:11
kid51 joined
|
|||
| muixirt | cotto: so winxed and lua aren't supported anymore? | 18:13 | |
| cotto | muixirt: lua definitely isn't. winxed may not be a problem because it compiles to pir without much fuss. | 18:14 | |
| muixirt | sad, but both (?) maintainers of these languages gave up anyway. | 18:17 | |
| dalek | p: 97fd401 | moritz++ | src/QAST/ (3 files): [QAST dumper] include a bit more info |
18:26 | |
| dukeleto | ~~ | 18:27 | |
|
18:29
mberends joined
|
|||
| cotto | hio dukeleto | 18:31 | |
| dukeleto | cotto: howdy | ||
| muixirt: "giving up" and "not having time to contribute" are not quite the same thing | |||
| cotto: so much action in parrot, i can barely keep up | 18:32 | ||
| cotto | dukeleto: "may you live in interesting times" | 18:34 | |
| 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" :-( | ||
| dukeleto | such as github.com/Benvie/continuum "A next-generation JavaScript (ES6) Virtual Machine written in last generation JavaScript (ES3)" | ||
| rurban | no, the p2 parser is still in dev. so far it always returns P2, the interp object | 18:38 | |
| I had it working parsing subs and simple expr, but threw it away. | |||
| 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
|
|||
| 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. | ||
| cotto | dukeleto: what's the best way to resurrect the p5-based ops2c? | ||
| rurban | mberends: this decision will affect a bottom-up marpa/yacc-like grammar, or a top-down peg grammar | ||
| cotto | *bizzaro | 18:41 | |
| rurban | Pratt is super nice, yes. Should be easily made dynamic | ||
| mberends | Pratt is top down operator precedence, like Crockford's in JSLint. | ||
| cotto | though bizarrot would be a good portmanteau bizarre and parrot | ||
| 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 | ||
| cotto | dukeleto: yup | ||
| rurban | maru has both | ||
| cotto | git checkout -b ops2cpl-was-here a5077a54eb23471f861a98e96e612b5ad81b1e7c | ||
| rurban | mberends: piumarta.com/tmp/maru/ | ||
| dukeleto | cotto: git checkout a5077a54eb23471f861a98e -- path/to/ops2c # methinks | ||
| 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 | ||
| 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 | ||
| dukeleto assumes that if he is wrong, Benabik will correct me :) | |||
| There are so many VM's these days. Like a swarm of locusts they are. | 18:44 | ||
| cotto | dukeleto: thanks | ||
| mberends | rurban: ok, gotta try all approaches until one works really well | ||
| 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. | ||
| 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. | ||
| In that commit, bacek posted notice that tools/build/ops2c.pl was deprecated | 18:47 | ||
| dalek | kudo/optimizer-void-context: d501814 | moritz++ | src/Perl6/Optimizer.pm: track declaration bits in the QAST |
||
| cotto | kid51: you seem to be right. I'll keep digging to find a commit where ops2c.pl was in active use. | 18:50 | |
| dukeleto | muixirt: frankly, I am worried about NotFound because I haven't been able to get ahold of him in a while | 18:53 | |
| muixirt: his last Github activity is 8 months ago: github.com/NotFound?tab=activity | |||
| cotto | hopefully he managed to get a job, though it's really rough in Spain | ||
| 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 | |
| i see lots of PMCs getting deleted, presumably because Rakudo doesn't use them? | |||
| cotto | dukeleto: yup | 18:59 | |
| same deal for ops | |||
| muixirt | cotto: do dynops go away? they are a hindrance for jitting, right? | 19:03 | |
| 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:04 | |
| pmichaud also said that nqp's ops change fairly regularly. | 19:06 | ||
|
19:07
Eddward joined
19:08
Mike-PerlRecruiter_ joined
|
|||
| muixirt | cotto: i wonder why some rakudo folks demand a jit compiler if it isn't feasible with nqp/rakudo | 19:11 | |
| 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:12 | |
| 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:16 | |
| dukeleto | muixirt: there is no jit. Anywhere. | 19:18 | |
| muixirt | dukeleto: it is there! somewhere in your git repo :-) | 19:22 | |
| dukeleto | muixirt: it exists just before the 1.7.0 release | 19:24 | |
| 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:25 | ||
| cotto | It wasn't the kind of jit you'd see in something like Chrome or Firefox. | 19:26 | |
| dukeleto | cotto: this kind of reminds me of M0: asmjs.org/spec/latest/ | 19:36 | |
| who is interested in being a #gsoc mentor ? | 19:40 | ||
|
19:40
Reini joined
|
|||
| dalek | kudo/optimizer-void-context: 9244510 | moritz++ | src/Perl6/Optimizer.pm: use %!worrying mechanism for string constants in void context |
19:47 | |
| p: b1258d7 | jnthn++ | tools/ (2 files): Revert "Merge remote-tracking branch 'origin/spacey'" This reverts commit 1db6167740f7306a0e3acf04ccb15dfcc27c3dcb, reversing changes made to c9bc4a25ba2ca57e3642dbe870da31fd1b661322. |
19:55 | ||
| p: 0514fec | jnthn++ | src/NQP/ (2 files): Remove a now-unused option. |
|||
| p: 1e0a374 | jnthn++ | src/NQP/Actions.pm: Remove a redundant load. |
|||
| p: c6832d5 | jnthn++ | src/NQP/Actions.pm: Add a way to specify a custom regex lib. Useful for nqp-jvm while it only has the runtime part of it. |
19:57 | ||
| dukeleto | maybe we should just rewrite Parrot with Inline::Fortran github.com/kenneth-k/Inline-Fortran | 19:59 | |
| cotto | dukeleto: accepting patches | 20:09 | |
|
20:11
Reini joined
|
|||
| 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? | ||
| (assuming that Reini is also you) | |||
| moritz | does parrot have a noop op? | 20:13 | |
| cotto | moritz: yup | 20:15 | |
| moritz | what's its name? noop? | 20:16 | |
| cotto | moritz: it's a core op | ||
| yes | |||
| moritz | ok, great | ||
| cotto | The implementation looks very efficient. | 20:17 | |
|
20:17
mtk joined
|
|||
| dukeleto | noop is op # 0 | 20:20 | |
| iirc | |||
| muixirt: exactly! We must put those COBOL/Fortran fingers to work :) | 20:21 | ||
| cotto | dukeleto: it's 1 for some reason. 0 is traditional. | ||
| dukeleto | Fortran is still *the* language in numerical computing, with C++ being second | 20:22 | |
| people spent possibly thousands of human-years optimizing FORTRAN code. They ain't throwing it away any time soon. | 20:23 | ||
| which is why Inline::Fortran is so interesting | |||
| particle: ping | 20:24 | ||
| rurban | cotto: Sorry, that's my macbook air. yes | ||
|
20:25
Reini joined
|
|||
| dukeleto | GSoC is coming around the corner again. Anybody have ideas for project or want to help? | 20:25 | |
|
20:25
Reini left
|
|||
| dalek | kudo/optimizer-void-context: 7636b79 | moritz++ | src/Perl6/Actions.pm: give string literal QAST nodes a Match object |
20:25 | |
| 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:26 | |
| dalek | Heuristic branch merge: pushed 1000 commits to nqp/PackfileView by gerdr | 20:27 | |
|
21:02
benabik joined
|
|||
| cotto | hio benabik | 21:03 | |
| benabik | 'lo cotto | 21:04 | |
| allison | cotto/Coke: which branch of which github repo is active (i.e. where should I put non-destructive multi changes) | 21:06 | |
| or at least, what should I branch off of? | |||
| cotto | allison: it's hard not to say "master" | ||
| ;) | |||
| allison | cotto: well, I'm headed in the direction of removing multi entirely | 21:07 | |
| moritz | sixparrot branch then? | ||
| allison | cotto: but the first steps are just removing it from places where it doesn't do anything anyway | ||
| cotto | I'm not sure of the status of sixparrot. I'd like to see it merge as soon as coke++ is ready. | ||
| moritz | last I tried, nqp and rakudo worked fine on top of it | ||
| cotto | moritz: same here | ||
| 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:08 | |
| coke's sixparrot branch? or the one in parrot/parrot? | 21:09 | ||
| cotto | allison: they're the same now | ||
| allison | aye, but will they remain the same? | ||
| or are people working on coke's branch? | |||
| or are people working on the parrot/parrot branch? | |||
| cotto | parrot/parrot | ||
| 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 | ||
| allison | sure, it made sense | ||
| cotto | yes | 21:11 | |
| just a race condition | |||
| 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 | ||
| cotto | unsurprisingly, it's kid51++ | ||
| allison | nostalgia: use.perl.org/use.perl.org/_chromati...35333.html | 21:22 | |
| benabik | "There are languages specifically optimized for generating the Fibonacci sequence" | 21:23 | |
| cotto | benabik: the sixparrot gets rid of our fact op. | 21:24 | |
| *branch | |||
| benabik | cotto: He was, there, referring to Haskell. | ||
| dalek | kudo/optimizer-void-context: c24440a | moritz++ | src/Perl6/Optimizer.pm: detect Int and Num literals in void context Does not trigger yet, probably because they have no .node info. Also replace the constant QAST node with a null op |
21:27 | |
| kudo/optimizer-void-context: 89c7e57 | moritz++ | src/Perl6/ (2 files): give numeric constant QAST nodes a .node now Int and Num literals warn in void context |
|||
|
21:28
bouncy joined
|
|||
| arnsholt | cotto: Reading your blog makes the TeX part of my brain think \\frenchspacing, but good interesting reading =) | 21:30 | |
| cotto | arnsholt: thanks | 21:32 | |
| dalek | kudo/nom: 932bc53 | (Tobias Leich)++ | src/Perl6/Grammar.pm: Apparent subscript will be treated as regex Throw the same warning as STD does for things like @var[0], $var{a} and $var<a> in regexes. |
21:41 | |
| kudo/optimizer-void-context: f6a731c | moritz++ | src/Perl6/Optimizer.pm: warn when inlining constant expressions in void context |
22:04 | ||
| rrot/sixparrot: 50053ee | allison++ | src/pmc/undef.pmc: Remove multidispatch from undef equality tests. |
22:24 | ||
| allison | apparently gained half a second on the rakudo test suite, though that could be completely random interference | 22:25 | |
| cotto | sounds like it's well within the margin of error | 22:27 | |
| but it's not slower | |||
| allison++ for checking | 22:28 | ||
| dalek | rrot/sixparrot: e932aec | allison++ | src/pmc/sub.pmc: Remove multidispatch from sub equality vtable. |
22:58 | |
|
22:59
kid51 joined
23:51
silug joined
|
|||
| dalek | p/target-pbc: 2d6a387 | (Gerhard R)++ | / (4 files): add --target=pbc to nqp the factoring of the code isn't perfect, but it does work |
23:52 | |