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