Priorities for this week: irclog.perlgeek.de/parrotsketch/201...#i_3126985 | Post closed tickets in your report. | Note: This channel is for our Tuesday status meetings (at 20:30 UTC); you probably want #parrot instead. | irclog: irclog.perlgeek.de/parrotsketch/today
Set by moderator on 16 January 2011.
00:52 whiteknight joined 02:18 whiteknight left 03:05 contingencyplan left 10:17 contingencyplan joined 12:12 whiteknight joined 13:19 mikehh joined 15:12 whiteknight left 17:06 cotto left 17:59 mikehh left 18:10 mikehh joined
sorear PDS in 3:19 ? 18:41
mikehh sorear: I think so 18:44
19:47 mikehh left 19:49 lucian joined 19:52 gerd joined 20:02 mikehh joined 20:38 cotto joined, gerd left 20:58 chromatic joined 21:37 allison joined
Util will be late for the PDS. 21:51
21:53 dukeleto joined 21:55 kid51 joined 21:59 nwellnhof joined
kid51 Welcome to the first Parrot Developers Summit for 2011 22:00
bacek aloha
mikehh hi there
chromatic afternoon
nwellnhof good evening 22:01
cotto hi
kid51 At our Dec 05 2010 summit meeting, we decided to hold these meetings quarterly, on the second weekend after each supported release
Since we had a supported release on Jan 18 2011, this is the weekend, and this is the time
Can everyone who is present right now, and who hasn't said hello, sound off now? 22:02
allison hi
kid51 (don't all shout at once!)
sorear hi 22:03
lucian hello 22:04
22:04 pmichaud_ joined
dukeleto hola 22:05
particle hola
pmichaud_ good 2200utc, whatever that ends up being in your locale
22:05 pmichaud_ is now known as pmichaud
mikehh methinks we have a quorum 22:06
kid51 cotto has asked me to chair for a while at the start of the meeting 22:07
We're proposing this structure:
1. Follow-up on action items from Dec 05 2010 PDS.
2. Roadmap goals
3. Other goals and topics.
Does that overall structure look satisfactory?
dukeleto +1 22:08
mikehh +1
pmichaud I'd like to have a few minutes before 2. Roadmap goals to discuss the changes we're planning for nqp
otherwise it looks fine to me
kid51 ok
pmichaud (the nqp changes may impact the roadmap goals)
I apologize in advance that I was not able to write up the nqp description in advance of this meeting
kid51 So, at the Dec 05 PDS, we ended the meeting with several action items ... 22:09
... about which I posted on parrot-dev shortly thereafter
... and did a summary of results a few days ago.
Take a minute to look at the summary: tinyurl.com/4cd34gs
(subsequent to that post, dukeleto posted about one of the items) 22:10
So, I suggest we briefly go through each of these 6 items to see (a) is my summary of the status of the action item correct; (b) next step, if any. 22:11
Does that sound like an acceptable approach? 22:12
22:12 bubaflub joined
mikehh +1 22:12
dukeleto +1 22:13
kid51 action item #1 concerned 2011 google summer of code;
dukeleto Anything to report yet?
dukeleto i have done nothing in regard to it
EOR
cotto What's needed and what needs parallelizing?
(if anything)
mikehh we need to set up a wiki page for it 22:14
kid51 we could use wiki to discuss topics we'd like to see worked on
dukeleto i will have very little time to do anything related to GSoC2011 in this quarter. If some people can start a wiki and organize some ideas for projects, that would be awesome 22:15
volunteers?
mikehh I can start something
cotto dukeleto, ok. Do you have any preference as to how ideas are organized?
kid51 okay, then I propose we go on to the next action item and come back to GSOC in the "other goals" part of meeting
Let's do the review first 22:16
dukeleto cotto: a single wiki page that lists all GSoC2011 ideas is fine for now
kid51 action item #2: architecture and design: cotto: status of this item?
particle mikehh: see trac.parrot.org/parrot/wiki/GSOC2010 for a reference point 22:19
cotto got some blog posts on Lorito, will be sending a roadmap goal to parrot-dev in a few minutes
kid51 k
action item #3: embedding API
I don't see whiteknight or bluescreen here yet, but whiteknight blogged extensively on this 22:20
nwellnhof i think we made some good progress on the embedding API but there's still work to be done. see tt #1990 for example.
kid51 nwellnhof: It would be great if someone (you!) could post a brief summary of progress to date on parrot-dev, as that list is a more permanent part of our record 22:21
2-3 paragraphs would suffice
nwellnhof i think whiteknight should do that. i've only been watching the progress on his and bluescreen's work. 22:23
kid51 Any other comment right now on item 3?
k
kid51 will bother whiteknight about that ;-)
action item #4: Parrot on Android: Lucian has emailed me indicating that time/work pressures prevented him from making progress on this item. 22:24
dukeleto: Anything to add about Android?
dukeleto kid51: no
lucian kid51: last idea was to add it as an interpreter for SL4A 22:25
dukeleto kid51: i am still interested in it, but have other things with higher precedence, such as Lorito hacking
lucian: do you know any SL4A people that we can recruit?
lucian dukeleto: just the author, really
if he's interested
dukeleto lucian: doesn't hurt to ask 22:26
lucian yep. my opinion is that parrot on android is pointless while it's still so fragile (and without decent implementations)
kid51 Parrot fragile or Android fragile?
lucian so yeah, Lorito and language implementations are a priority. I'd rather rewrite pynie 22:27
kid51: parrot
android's fine
kid51 lucian: I've been working on one guy in NYC about python on parrot
lucian otoh, parrot SL4A shouldn't be much effort 22:28
kid51: i'd like to try for GSoC with a pynie rewrite
kid51 once I make some progress with him, I hope to pull all the python people around parrot into a team
cotto I love the idea of a Python on Parrot written by Python people.
kid51 okay, when we come to the Individual Goals section, we can come back to Android
lucian cotto: and in python :) 22:29
cotto even better
kid51 action item #5: parrot roadmap
kid51 blogged ad nauseum about that
cotto kid51++ for that
kid51 ... and since it looks like we are focusing on roadmap goals at this meeting, it looks like this item was Achieved ;-) 22:30
action item #6: how to merge a feature branch; chromatic++ got right on this!
chromatic It's all done. 22:31
kid51 Any other comment on action items coming out of Dec 05 meeting?
cotto: Shall we have pmichaud go now? And then you can take over for Roadmap Items? 22:32
cotto sounds good
kid51 patrick ... you have the floor
dukeleto pmichaud: is all you 22:33
pmichaud what I have is a bit long (33 lines) -- I can either paste it into the channel or nopaste it
dukeleto paste it, because nopastes expire
kid51 please put it in channel so that it's logged (even though that takes mroe time)
dukeleto nice to have a log
pmichaud okay, here it comes
cotto watch out for throtting 22:34
dukeleto puts on helmet
pmichaud irssi usually handles that okay
Over the past few months, jnthn and others have been working on some significant enhancements to nqp-rx.
The new version has enough significant differences from the existing nqp-rx (I'll outline them in a bit)
that it's practically a new implementation of nqp.
As a result, we're planning to fork this new version into its own "nqp" repository (no "-rx"). The
existing implementation will continue to be known as "nqp-rx", to distinguish it in the future.
The main philosophical change in the new nqp implementation is that it now expects to always
have its own minimal "runtime API" available for the programs it compiles. This is somewhat
different from past versions of nqp that simply provided an interface to whatever Parrot provides.
In particular, the new implementation of nqp no longer makes use of Parrot's builtin Class and Object
PMCs -- nqp provides its own implementation for these (currently known as "6model"). The new
implementation adheres much more closely to Perl 6's design for an object system, and allows
capabilities Parrot's current implementation doesn't provide (such as native int/num/string types
for object attributes, and attribute fetch via integer index instead of hash lookup).
Similarly, nqp will have its own implementations of MultiSub PMCs and multidispatch, and a 22:35
custom set of dynops.
Our hope is that someday Parrot/Lorito will be able to adopt the new object and multidispatch
system as core components of Parrot. Our intent and belief is that the new systems are general
and efficient enough to implementat all dynamic languages, not just Perl 6.
For people that have been using NQP to develop compilers and write programs in NQP, we expect
there to be little overall hassle in migrating to the new system at an NQP "source code" level.
The syntax and semantics are largely unchanged from previous versions.
However, for people that have been using NQP as a way to access Parrot core PMC and class/object PMCs,
this will be a significant change.
(end of paste, discussion can begin here)
bacek pmichaud, what will happen to nqp-setting?
pmichaud I'm expecting there may be two "NQP"s for a while -- the existing nqp-rx that gets ported into Parrot, and a standalone nqp 22:36
the existing nqp-rx would be able to retain its setting
the new nqp will have a setting built-in
kid51 what means 'setting'?
pmichaud (which will likely subsume much of what is in the existing setting)
bacek pmichaud, in same way as Rakudo?
cotto kid51, set of runtime functions 22:37
pmichaud "setting" is the core classes and runtime functions provided by the language itself
bacek: we're still working that out, but yes, likely similar to Rakudo
dukeleto kid51: basic stuff that nqp-rx needs to bootstrap
pmichaud dukeleto: that's incorrect, fwiw
the setting isn't part of bootstrap at all
dukeleto pmichaud: mea culpa, i was using "bootstrap" in a very general sense 22:38
pmichaud: as in "stuff needing before other stuff"
needed, even
pmichaud even in its most general sense. nqp-rx expects to run without any setting
it's never needed (indeed, none of nqp/rakudo use it)
bacek opsc and "new PCT" use it :) 22:39
pmichaud well, that's the other thing
we expect to re-implement PCT in NQP, which means that the new PCT will be based on NQP's new object system
bacek pmichaud, should PCT leave the nest? 22:40
pmichaud essentially NQP is going to provide a re-implementation of PCT, likely. 22:41
it needs to do so in order to take advantage of the optimization possibilities available through the new object system
(as well as having a PCT written in NQP should be easier to maintain and port to other backends)
bacek pmichaud, can we factor out 6model as standalone library? Similar to P6object. 22:42
dukeleto pmichaud: i intend to port 6model stuff to Lorito when enough of Lorito exists. I am sure I will need some help :)
6model seems more like a spec with multiple implementations
cotto dukeleto, "April" 22:43
pmichaud I'm sure there will be plenty of support for porting 6model to Lorito
cotto (or sooner)
pmichaud from an nqp perspective, we're operationally planning that we have to provide our own 6model for a while
but as soon as it's available in Parrot, we'll gladly switch to what parrot provides
dukeleto pmichaud: yes, that is correct. But hopefully we can converge soon
cotto pmichaud, great. 22:44
pmichaud from a rakudo perspective, this also likely means that we will be phasing out "PARROT_REVISION" to instead have "NQP_REVISION"
dukeleto pmichaud: why not both?
pmichaud in other words, currently Rakudo depends on a given version of Parrot, which then incorporates some copy of nqp-rx
in the new setup, Rakudo will depend on a given version of nqp, which will then build/require the version of Parrot that it wants 22:45
there's still a PARROT_REVISION, but it's only in nqp, not Rakudo
particle nqp-parrot?
pmichaud likely.
particle i wonder how this will work with multiple backends, but that seems outside the scope here
pmichaud in parallel we expect others may want to work on nqp-jvm and nqp-clr
dukeleto pmichaud: we could make nqp-rx a git submodule, which means parrot.git can choose a sha1 of nqp-rx to use 22:46
pmichaud dukeleto: nqp-rx always refers to the old one -- is that intentional in your statement?
dukeleto pmichaud: not sure if that actually solves the problem though
pmichaud: yes
pmichaud: parrot will depend on nqp-rx for a while
pmichaud however parrot would like to handle nqp-rx is fine with me
dukeleto pmichaud: at least one more dep cycle, i guess 22:47
particle deprecation and all.
dukeleto pmichaud: ok, sounds good
pmichaud I would suggest to continue with the current model, though.
that's partially why we're creating a new repo for nqp, and not just a branch in the existing nqp-rx repo
dukeleto pmichaud: it works, so yeah, i agree.
particle i agree, until 6model is baked into parrot
dukeleto mmmm, baked 6cookies
kid51 May I make a number of observations?
cotto please do 22:48
pmichaud certainly
kid51 From my naive perspective, this sounds like it has profound implications for Parrot
So I think we need:
(a) pmichaud to do a write-up on parrot dev;
(b) it will need to become a roadmap goal at, say, the late April PDS (it's not ready for today) 22:49
So far so good?
cotto Lorito has always meant some pretty deep changes from Parrot. It's just that they're coming closer now.
pmichaud for (a), I was planning to do a write-up last weekend, but $life intervened. I again apologize for my not being up-to-speed on this
kid51 okay, now here's some more subtle points:
pmichaud but yes, an nqp roadmap is on my tasklist
kid51 It has been argued that Parrot has spent 10 years rewriting itself and has never become a product. 22:50
How does this affect our viability in that regard?
for example
If I'm meeting with a group of people who do Python for a living ...
... and trying to convince them to develop an implementation on parrot vm ...
... where do I tell them to start?
pmichaud I have two answers 22:51
particle cardinal has stalled due to parrot's incomplete object model. perl6 has worked around it, and parrot plans to adopt it.
that should unblock cardinal and other hll's
pmichaud first, speaking somewhat selfishly, I'd recommend hll authors to target the new nqp
particle i believe this rewrite is necessary.
dukeleto pmichaud: python people don't want to write stuff in NQP
pmichaud: sad but true 22:52
kid51: i would recommend telling them to embed PyPy in Parrot, which may excite them a bit more
pmichaud dukeleto: python programmers, or people writing pythong compilers?
particle would they prefer a nqpy syntax layer ?
kid51 dukeleto: Yes, that is the psychological point I was getting at
pmichaud *python
dukeleto pmichaud: both
mikehh my understanding is that P6model is the most comprehensive object model available and the new nqp implements this
cotto Part of selling Parrot as a universal VM is saying that people can use whatever language they want to target it.
pmichaud dukeleto: I think it's almost axiomatic that any compiler writer starts out by writing in some other language first
so while it's a fair concept to say "they don't like NQP", they'll still have to fall back to C or PIR or bison or something else like that 22:53
dukeleto pmichaud: of course. I am just remarking about what I hear Python people say. Perhaps I haven't talked to the right Python coders yet
allison making Parrot one optional back end to PyPy makes sense
dukeleto pmichaud: there are a lot of options, such as using PyPy to parse Python and not have to re-invent that wheel
allison++ 22:54
allison dukeleto: what do you mean by "embed"
pmichaud dukeleto: I agree, but there there still has to be some non-Python programming involved
allison basically, PyPy is an alternate to NQP
Tene Large parts of Rakudo are written in Perl 6. I rather expect that python on parrot would end up largely written in python, but there's always going to be some bootstrapping stage and some layer that uses native parrot stuff for the backend.
dukeleto allison: use C and duct tape to make PyPy and Parrot talk to each other
allison (a much more python-friendly alternate)
pmichaud I'm saying use NQP for the duct tape
I'm not necessarily saying use NQP for the entire compiler implementation
allison pmichaud: it's overkill, PyPy already has everything NQP provides
pmichaud fair enough
dukeleto pmichaud: i agree with you, and I enjoy NQP. But I think we need a few flavors of duct tape to attract people outside of the Perl-sphere 22:55
pmichaud dukeleto: I was simply providing my answers to kid51's question (more)
I certainly am not trying to claim that NQP is the only answer. It's just the one I would go with and recommend to others that want to implement $HLL_compiler on Parrot in the next year.
allison pmichaud: NQP is exactly where your focus should be 22:56
dukeleto pmichaud: i totally agree
chromatic Instead of bending over backwards to add maximum flexibility for every possible use we can imagine someone somewhere might want to use something different, how about we focus on making one thing that works really well first? That goes for NQP as well.
dukeleto pmichaud: the "flavors of duct tape" is a parrot issue, not a nqp/rakudo issue
chromatic ... given that we seem to be lacking people who say "I'd use it if it had more flexibility in that one spot right there."
kid51 chromatic: What would that "one thing" be?
bacek kid51, "M0" 22:57
pmichaud nqp's focus is on overcoming the speed/impedance issues between Perl 6 and Parrot (and other vm)
chromatic I don't particularly care what that one thing is, as long as it's not "providign the universal plug and play compiler/vm/toolkit/runtime where you can swap out anything and everything."
pmichaud nqp-rx served its purpose of getting us to a working Perl 6. The new nqp is focused on making rakudo more usable.
in the process we believe it can be used for other compiler authors that wish to develop tools for Parrot and other vms 22:58
dukeleto chromatic: i think PL/Perl6 is a project that can deliver a product to many people outside the normal Perl/Parrot sphere
pmichaud but we're not really pushing that
allison chromatic: yes, that way lies chaos 22:59
chromatic: one of the hardest things about Parrot has been trying to be everything for everybody, so we end up being nothing for nobody
I like the way NQP is heading toward providing its own object model
that makes core parrot much lighter 23:00
chromatic I don't. I think that way lies madness for NQP as well.
dukeleto chromatic: i think our new embed api is very important, and we should make it very shiny and give it good documentation, and we will see parrot embedding in interesting places
cotto allison, they'll be converging once it's possible though
lucian sorry i missed the python discussion :)
allison cotto: sure, but "converging" doesn't mean all languages will use the full complexity of Perl6's object model 23:01
cotto: as far as I can tell, no other language will
dukeleto chromatic: also, once a few more zits have been popped in parrot internals, making parrot mobile-friendly will open up many possible use-cases
lucian PyPy isn't really similar to NQP at all
chromatic Parrot's portability and embedding is only useful if Parrot gets used.
allison lucian: at an implementation level, they're not similar
chromatic Portability and embedding are good, but they're ancillary. 23:02
allison lucian: but they both provide a parser and a language runtime, on top of a core VM
lucian and writing a python compiler targeting parrot in python isn't complicated at all, since we have CPython
particle i agree with chromatic's suggestion that it's not yet time to take parrot mobile
lucian allison: to some degree, i guess. more like PyPY is similar to parrot, not nqp
allison (PyPy's core VM is currently CPython, NQP's core VM is currently Parrot)
dukeleto particle: yes, which is why i have held off
lucian no, PyPy's core VM is the PyPy vm
the PyPy python interpreter can run on either CPython on compiled PyPY 23:03
dukeleto particle: but we are definitely coming close to a critical value in parrot's history
pmichaud (just a note that I still have a 2nd answer to kid51's question when this thread slows down)
particle that value is not yet 42 ;)
dukeleto pmichaud: go for it
allison lucian: yah, NQP has multiple backends too 23:04
lucian allison: perhaps you're comparing NQP with RPython, but even that isn't very accurate
pmichaud I just wanted to note that although the new nqp has its own object model, it is still able to communicate with existing Parrot objects. It just can't create any on its own (except through whatever methods those objects provide). So HLL interop remains a possibility with languages and systems that don't use 6model objects.
allison lucian: move to #parrot, to allow pmichaud to continue
lucian allison: sorry 23:05
bacek pmichaud, what about Q:PIR in new nqp?
pmichaud but unlike the current nqp-rx that is able to build Parrot classes and objects (through p6object), the new one will not likely have that capability for a while
Q:PIR will continue to exist
in general we prefer pir:: (more)
kid51 will convene a separate discussion, like this one, about Python and Parrot in a few weeks when he talks to some python folks more
sorear bacek: does Q:PIR make any sense with direct-to-pbc-POST? 23:06
bacek sorear, none at all.
pmichaud most pir:: will be going away in favor of a nqp:: namespace, where nqp itself can map the abstract operation to the underlying vm
bacek sorear, and POST::Op(:inline(...)) too
pmichaud Q:PIR and :inline() have always been intended as bailing wire and string, not as permanent answers to the puzzle
cotto pmichaud, I'll be glad to see them go away as long as we get equivalent functionality. 23:07
pmichaud they're conveniences to "get something working", not "recommended API"
23:08 lucian left
pmichaud depends on the level of "equivalent functionality" involved. A lot of the functionality that Q:PIR and :inline provide really need to go away for Lorito's sake, I think. 23:08
as sorear and bacek note, they don't play well with direct-to-pbc 23:09
they're really from a time when imcc was the only tool Parrot offered
dukeleto pmichaud: that time is coming to a close
cotto and good riddance
23:10 lucian joined
kid51 Can I ask that we move this discussion toward a focus on: What do both Rakudo and Parrot developers need to focus on in next 3 and 6 month periods? 23:10
pmichaud as an aside, based on past experience in both Rakudo and Parrot, I'm hesitant to make any claims about things being "real soon now" (or to accept them at face value)
dukeleto whiteknight++ is isolating IMCC in preperation for ejection
pmichaud dukeleto: Yes, I've been reading his blogs closely. 23:11
Still, our collective track record is not always that good.
dukeleto pmichaud: yes, but we code and learn
pmichaud I can answer for Rakudo when you're ready.
kid51 pmichaud: proceed
pmichaud Jonathan wants Rakudo to switch over to the new nqp in the next 3 months. He feels we can do it in 2 months; I'm less willing to commit to that timeframe. We expect it to be less overall pain and effort than it was to convert from "Rakudo alpha" to "Rakudo ng" around this time last year. 23:12
kid51 What will Parrot have to do *in preparation* for that? And what *should* Parrot do *after* that? 23:13
pmichaud so, we expect to have the new nqp running within the next week, and start the Rakudo conversion process in the next two weeks. We don't know how long it will take, but estimate ~2 - 3 months, such that the April Rakudo release is based on the new nqp.
We don't have any specific needs from Parrot to support that, as far as I know.
kid51 okay.
the "should-after" question is as much for cotto as for pmichaud 23:14
chromatic Also "should Parrot even support this"?
pmichaud (other than the standard "don't change anything too radically underneath us that hasn't been deprecated" :-)
sorear Does new-NQP still use IMCC? 23:15
cotto It sounds like "follow our deprecation policy" is all that's needed.
pmichaud as this is taking place, I hope that parrot core devs will have a chance to look at 6model and see how it plays with planning for lorito
sorear or I should say, "PIR as an intermediate step"
pmichaud sorear: yes, if only because it has to at this point.
cotto pmichaud, I've been doing just that. 23:16
bacek pmichaud, I probably will stop any work on migrating current PCT to NQP. It doesn't make sense at all now. I think it's better to focus on "newPCT" to PBC emitting as soon it will be in reasonably good shape.
pmichaud cotto: yes, and chromatic++ as well. I'm just recording it for the log :)
bacek: I plan to steal liberally your pct work. :)
bacek pmichaud, it's in kind of "draft mode" :)
chromatic I've started to question the value of borrowing from 6model in core Parrot. 23:17
pmichaud it's not at all wasted -- I see it as being key to where we're going (and incredibly well-timed)
bacek pmichaud, ok. I can probably help with newPCT then
pmichaud bacek: I would like that very much
bacek pmichaud, deal :)
cotto chromatic, can you expand on that?
chromatic If NQP has backend portability as a goal, it needs a compatibility layer. 23:18
It already has one, in its object model.
Why should Parrot do more work for something NQP isn't going to use?
(Besides the fact that if NQP has backend portability as a goal, what's the point of Parrot?)
bacek M0->6model->NQP->Rakudo? 23:19
works for me
chromatic Why not M0-6model->Rakudo?
I mean,
M0->NQP->Rakudo?
bacek chromatic, we need some object model for Parrot runtime.
It can be "current PMCs"
Or new 6model
chromatic To support what? 23:20
bacek PCC? NCI? GC?
pmichaud I think that nqp considers 6model to largely be its compatibility layer
mikehh btw, I put up a page on the wiki as a start point -> Ideas for GSoc 2011
chromatic I have no desire in core Parrot to support NQP's backend portability. 23:21
mikehh which will later become GSoC 2011
pmichaud I mean the 6model api, then, not the model itself.
dukeleto mikehh++
pmichaud I don't think we're asking (or expecting) Parrot to provide backend compatibility
particle chromatic++
bacek chromatic, ooookey. How various HLLs can interop than? 23:22
chromatic Ask Rakudo, I guess.
Maybe something like "Every HLL should somehow adopt an object model portable across multiple backend VMs." 23:23
pmichaud without completely following the details, M0->NQP->Rakudo sounds about right to me
but I keep thinking that object handling needs to be more core than Parrot has traditionally thought of it
and I don't think M0 does that (I have trouble keeping it straight) 23:24
jnthn tries to catch up with what's being discussed
chromatic If NQP/Rakudo wants a really simple, really dumb VM that provides minimal features in common with other VMs, then Parrot can do a lot less work, if it's even valuable at all for Parrot to try to meet that goal. 23:25
pmichaud chromatic: I don't think that's what we want at all
(more)
Tene I've always expected parrot to eventually have a sufficiently-flexible MOP such that HLLs can replace behaviour in metaclass subclasses or whatever, such that HLLs don't have to do anything special to use objects from other languages.
pmichaud Our experience somewhat says that there's always some level of mismatch between the underlying VM and what NQP/Rakudo need 23:26
what we'd like to see is a VM that minimizes that mismatch so that we get the biggest speed/performance
not necessarily a lowest-common-denominator 23:27
chromatic I'm not sure adding more compatibility layers meets that goal.
pmichaud right
dukeleto Tene: yes, that is my vision as well
pmichaud if Parrot can become the VM that doesn't require a compatibility layer, then it's ahead of the others.
particle are we still in the realm of strategic discussion or off in the weeds, and better suited for #parrot?
dukeleto particle: somewhere in between :)
pmichaud I doubt that clr or jvm or any other the other vms will ever be able to avoid the compatibility layer 23:28
chromatic But backend portability is still a goal?
pmichaud it's a goal, yes, but one where (I think) Parrot can have an advantage
perhaps I'm naive
kid51 particle: This is more strategic discussion than we've had in > 1 year ;-) 23:29
dukeleto pmichaud: i think having other backends will make Parrot more honest, because we can be compared to them
chromatic I'm not telling you how to spend your time, but I personally see no value in pursuing hypothetical portability.
kid51 particle: And the purpose of PDS is strategic, not tactical.
jnthn *sigh*
dukeleto chromatic: that is a choice left to Rakudo developers
jnthn chromatic: Rakudo/NQP is persuing a multi-backend approach. I've heard your opinions.
dukeleto chromatic: we need you to worry about Parrot :)
chromatic I worry that baking these assumptions into Parrot is a mistake. 23:30
jnthn What assumptions?
mikehh chromatic: in what way?
pmichaud Yes, I'm not sure what assumptions are being baked in.
Util arrives, is reading backlog
mikehh Util: good luck :-}
chromatic Supporting NQP, for one.
dukeleto chromatic: you are concerned that 6model will taint the way Parrot does a meta object protocol (MOP) ?
Tene Instead of a compatibility layer, I'd like to see a parrot such that you can implement your metaclass behaviour on the same level as whatever is core. Instead of saying "write a glue layer", say "replace the parts that don't work for you". 23:31
dukeleto chromatic: i think your concern is valid, but i plan on learning from 6model and implementing what parrot needs, not copying it wholesale
mikehh we need to make NQP pluggable
dukeleto Tene++
pmichaud Tene: IIUC, 6model somewhat wants to provide that 23:32
jnthn I dunno where anyone particularly got the idea that 6model is primarily a compatibility layer.
dukeleto does making NQP pluggable make us go down the road of "pluggable for pluggability's sake" ?
cotto Tene, that's what I'm planning too.
dukeleto jnthn: i don't see it as such
Tene pmichaud: My understanding has been the same.
chromatic NQP is the compatibility layer.
jnthn is very confused. 23:33
dukeleto chromatic: please expand your statement, because as it stands, many of us do not agree.
pmichaud I agree, NQP is the compatibility layer for making Rakudo portable to various vm backends.
(jnthn, please speak up if you disagree with what I just wrote)
chromatic Then I see no value in supporting NQP above and beyond we'd support any other project not in Parrot's core.
pmichaud I see it as "NQP offers a viable alternative underlying object model, when we know that Parrot's current oo implementation has issues." 23:34
it's more that 6model may be a reasonable "next oo implementation" for Parrot.
because the current one doesn't work out well, at least not for Rakudo or NQP 23:35
Tene My understanding has always been that 6model was a prototype or experiment in implementing such a pluggable or flexible metamodel, with the goal that the parrot implementation of it would eventually guide a rewrite of parrot's metamodel support.
pmichaud it's an oo implementation that we think .... does what Tene++ just wrote
chromatic I have no problem with 6model.
mikehh I see 6model as the most comprehensive object model at the moment
pmichaud it's not so much that it supports NQP, as that we think it's a better alternative for Parrot to adopt than what Parrot has now.
chromatic I have a big problem with focusing Parrot's support on NQP.
pmichaud I don't think jnthn or I are necessarily asking for that. 23:36
jnthn I'm certainly not asking for that.
chromatic I want it out of the repo, out of the tarballs, and I want our tools in the core to stop using it.
pmichaud kid51's question was "What should Parrot do after Rakudo/NQP switch." My answer was that Parrot should look at NQP's object model and see about adopting it for Lorito. 23:37
mikehh chromatic: what do you see as the alternative
chromatic I don't have an alternative.
jnthn chromatic: That's all well and good, but what do you want people developing core Parrot tools to write in?
chromatic How about a language/toolkit that doesn't suggest they should migrate away from Parrot?
jnthn WTF?
dukeleto chromatic: i am not quite understanding that 23:38
pmichaud I think chromatic is looking for a language/toolkit that remains eternally Parrot-focused.
jnthn chromatic: How is giving people a way to write compilers that target, amongst other VMs, Parrot, suggesting they migrate away from Parrot?
pmichaud I don't think that's entirely unreasonable, fwiw.
chromatic I see no reason why Parrot should support VM backend portability.
jnthn Oh forget it, I'm not wasting my time on this argument. 23:39
23:39 jnthn left
dukeleto hmmmm 23:39
chromatic If we push all of the smarts of Parrot into a VM compatibility layer, what's the goal of Parrot?
dukeleto chromatic: i agree with you that we should not, but I don't think we are. The Rakudo devs are doing that.
chromatic I'm not going to tell Rakudo/NQP developers how to spend their time. 23:40
particle dukeleto: the nqp devs are doing that
pmichaud chromatic: would it be fair to recast your statement as "I don't think Parrot should support tools that provide VM backend portability"?
particle can parrot get an nqp that's parrot-only?
chromatic I don't want to adopt those goals uncritically in Parrot.
particle does that make anyone happy?
chromatic If some/all of those goals make sense in Parrot, that's fine.
pmichaud chromatic: I think I'm entirely in agreement.
dukeleto chromatic: what is your motivation for excising nqp from parrot core? What does it solve? 23:41
chromatic If NQP isn't a Parrot-focused tool, what value is it to Parrot?
particle agreed.
pmichaud it's a tool that lets people write software for Parrot.
chromatic I'm not suggesting that it has no value, but I think we need to discuss its value to Parrot.
Coke for one, it's still easier to write code in NQP than in anything else.
cotto +1
pmichaud that's always been its claim to fame
dukeleto i agree with pmichaud. NQP is basically "something that sits on parrot", and end-user of parrot
23:42 bubaflub left
particle dukeleto: not when core parrot tools become users of nqp 23:42
dukeleto particle: yes, i agree with that
pmichaud I should also note in passing that if Parrot decides to completely expunge nqp from its archives and sources, I have no problem with that.
cotto I like nqp in core because it makes some tests and libraries less painful. If we switched to winxed or something else and got the same benefit, that'd be fine (module the cost of switching). 23:43
mikehh I don't see a viable alternative at the moment
chromatic That's not the worst problem though.
dukeleto there is not viable alternative at the moment
particle kid51: how long is this meeting scheduled to continue, and what remains to discuss? 23:44
23:44 bacek left
mikehh roadmap? 23:44
dukeleto chromatic: does this play into the "let's rewrite our internals every few years" rigamarole? Does this help us get a product out the door in the next year?
chromatic I see it more as a question of "Why are we doing this?"
dukeleto chromatic: i share your concerns, but i am not sure if they are our biggest problem currently
chromatic: i agree, it needs some analysis and discussion 23:45
kid51 particle: We don't have a fixed meeting length.
chromatic What is the only real project using Parrot right now?
kid51 The next item to be discussed is the IMCC roadmap item.
dukeleto chromatic: define "real project"
particle nqp.
Tene and why isn't parrot sufficiently attractive to other projects yet? 23:46
dukeleto chromatic: i submit PL/Parrot as a real project, and I am willing to defend that :)
Tene And how can we get there?
chromatic Let's say "Project with more than two developers" or "Project with a roadmap" or "Project that probably would not survive Parrot shutting down right now."
mikehh winxed is a good example
chromatic But I'm comfortable saying "Most important" or "Most widely used" project too.
dukeleto chromatic: what is your answer to that question?
chromatic NQP/Rakudo
particle nqp/rakudo is the reason parrot is still around 23:47
dukeleto chromatic: which was really the same project, 11 years ago, if what I read is true
particle there is no other hll foundation or group supporting parrot materially 23:48
mikehh so your contention is that if NQP can target other VM's parrot will fade away?
chromatic Is there a good reason to work on Parrot then?
dukeleto chromatic: Parrot has never had a real external user, i.e. a project by someone that was not a Parrot core dev already
chromatic: i am interested in hacking Javascript on Parrot, and I won't be using anything related to NQP. 23:49
chromatic: would you like javascript as the internal parrot language of choice, instead?
allison chromatic: Shipping a viable Perl 6, running on Parrot, used in production, by real companies, is the single biggest step we can take toward Parrot's "success". A significant portion of the community is and should be focused on that. 23:50
Tene chromatic: My reasons for wanting to work on Parrot remain unchanged. I believe that a good dynamic VM with good support for language interop would be very valuable. I'd love to see it.
allison chromatic: But, that doesn't mean we drop everything and work only on Perl 6.
dukeleto allison: i totally agree
mikehh +1
dukeleto chromatic: can you send an email to parrot-dev with your concerns about NQP? 23:51
chromatic I'm not sure what else to say.
Tene fwiw, nqp's support of other VMs certainly could go the other way as well. A project on another VM adopting NQP could make it easier for them to move to Parrot.
kid51 Can we move toward translating this discussion into action items?
chromatic NQP's goals aren't necessarily Parrot's goals.
dukeleto chromatic: well, a summary of what would said for those that are not here would be extremely useful
chromatic Rakudo's goals aren't necessarily Parrot's goals. 23:52
dukeleto kid51++ # let's bake some action items
kid51 chromatic: I agree with dukeleto. I would like to see a post on parrot-dev
chromatic If Rakudo doesn't really want Parrot anymore, what should Parrot do?
mikehh yes but Rakudo IS a parrot goal
pmichaud Let me speak to what Rakudo wants.
Rakudo wants a fast implementation of Perl 6.
particle we can fork nqp-rx, or take it over as a parrot core tool
pmichaud That's our current #1 problem at the moment. 23:53
dukeleto pmichaud: yes, i agree
Tene chromatic: As far as I can tell, Rakudo *does* want parrot, but parrot hasn't been living up to Rakudo's desires yet. I see that meaning that we should try to meet those goals, not drop rakudo.
dukeleto pmichaud: i meant to reply to particle, oops
pmichaud Our ability to improve Rakudo's speed has been limited by our toolset.
Not just Parrot, but PCT and NQP as well.
notably, afaict none of the roadmap items from December addressed Parrot speed 23:54
Tene If rakudo says "Parrot isn't meeting our needs, so we're dating other VMs", we don't take our ball and go home, we try to address the issues instead.
pmichaud perhaps I'm incorrect about that
dukeleto Tene: i like that sentiment
nwellnhof we shouldn't forget that the JVM and CLR are closed source. there will always be people who want to use parrot simply because it's open. 23:55
dukeleto I see many people flocking to Parrot soon, because of worries about corporate overlords of all other popular VMs.
pmichaud so, we have two choices: we can either bet the farm on improving parrot's speed, or we can say "well, what options are available for other vms"?
kid51 pmichaud: The list of action items was based on those raised by participants in that summit.
dukeleto pmichaud: i think rakudo is doing it's due diligence, and totally understand 23:56
particle so i should stop thinking about selling parrot to oracle?
pmichaud kid51: fair enough. The participants there didn't have speed as a high priority, even though that's been rakudo's #1 request for well over a year.
sorear nwellnhof: the CLR has several implementations; I use an open-source one daily
chromatic I haven't seen Rakudo benchmarks in months.
kid51 pmichaud: Well, I know I would not have been able to articulate what Rakudo needed from Parrot 23:57
nwellnhof sorear: well, not open enough for some people.
cotto Let's summarize this and move on.
dukeleto cotto++ 23:58
Tene Summary: Rakudo and Parrot should start going to couples therapy.
kid51 I think we need posts on parrot-dev that address the following:
1. What does Rakudo -- our principal customer -- need from us over the next 3/6/9/12 month periods.
mikehh I thought that the function of Lorito etc was to simplify AND improve the speed of parrot significanyly
cotto mikehh, it is.
Tene mikehh: Yes, but it still hasn't happened yet. 23:59
pmichaud mikehh: I agree... I haven't seen much progress (as measured in code) on Lorito. Our NQP effort is very much intended to help jumpstart that process.
kid51 2. chromatic: I get the sense that your vision of Parrot is somewhat different from others; I would like you to articulate that, if that is the case. On parrot-dev that is.
chromatic I'm not sure we have a vision.
mikehh that is what I saw it to be as well, especially 6model