|
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:19
Reini joined
00:50
PacoAir joined
01:24
PacoAir left
01:27
PacoAir joined
02:17
kid51 joined
03:12
kid51_ joined
04:43
Reini joined
06:08
Reini joined
|
|||
| cotto | allison: What happened that made Parrot's developers switch from building a vm just for Rakudo to providing one suitable for all dynamic languages? | 06:28 | |
|
07:09
Mike-PerlRecruiter_ joined
08:28
bluescreen_ joined
09:43
Psyche^ joined
|
|||
| dalek | p: 6b358a3 | jnthn++ | src/core/NQPRoutine.pm: Toss now-unrequired clone callback legacy code. |
11:51 | |
| p: f92cd68 | jnthn++ | src/QAST/Operations.nqp: Add an nqp::escape that maps to pir::escape. |
|||
| p: 3f27005 | jnthn++ | src/stage0/ (9 files): Update bootstrap. |
|||
| p: 26d0d0f | jnthn++ | src/QAST/ (2 files): Get QASTNodes free of pir::. |
|||
|
12:21
mj41 joined
12:40
xcombelle joined
13:09
kid51 joined
14:10
bouncy joined
14:11
PacoAir joined
14:14
PacoAir joined
14:23
Psyche^ joined
15:22
benabik joined
15:38
xcombelle joined
15:46
Reini joined
|
|||
| allison | cotto: ititially, it was just a "bonus" | 16:38 | |
| cotto: the idea that if you design the architecture with good encapsulation between internals and parsing/compiling, then it would mean you could support multiple languages easily | 16:39 | ||
| cotto: but it grew over time, especially as Dan became disilusioned with Perl 6 design | |||
| cotto: the more Dan hated Perl 6, the more focus he put on supporting multiple languages | 16:40 | ||
| cotto: see, the whole tension between Perl 6 and Parrot didn't start with Rakudo | |||
| cotto: it went all the way back to the root | |||
| At the time, I thought Dan was a bit daft. (I was on the Perl 6 design team at the time.) | 16:41 | ||
| Sort of like "here, we've got this lovely design for you, don't you want to implement it?" | 16:42 | ||
| But, when I became architect, oddly, I found myself following in his footsteps. | |||
| I started with total focus on supporting Perl 6, and rapidly got more and more grumpy about the weird things Perl 6 wanted. | 16:43 | ||
| Truly weird things. | |||
| I see this as a fundamental flaw in Perl 6 as a whole. | 16:44 | ||
| Not the features, they're weird, but features are always changable. | |||
| The flaw is the separation between design and implementation. | 16:45 | ||
| Perl 1 was all Larry, design and implementation. | |||
| So, if he ran across a piece where he thought "this is a pretty neat idea", but found in practice that it didn't work, he'd just chuck it, or refine it so it worked. | 16:46 | ||
| Perl 4 and Perl 5 were grander, but still very practical, very focused on what's needed right now for a usable language. | 16:47 | ||
| Perl 6 slipped the bonds of gravity. It was never required to be practical. | |||
| And the most frustrating thing as an implementer is when you tell a designer "the laws of physics don't work that way", and the designer says "make them work that way". | 16:48 | ||
| Curiously, the whole "multi-language" thing is what scared Java and Microsoft the most. | 16:53 | ||
| That's what made them see Parrot as serious competition, because they couldn't support the lanaguages Parrot was targeting. | 16:54 | ||
| So, they threw money at the problem, hired a bunch of developers to work on it. | |||
| And both of them more-or-less solved the problem. | |||
| The JVM and DLR can support dynamic languages well enough now. | 16:55 | ||
| Not as well as Parrot might be able to provide someday, but better than anything Parrot has actually provided so far. | |||
| We were so convincing, that we changed the world. :) | 16:56 | ||
| davidfetter | so you're saying parrot was like the al-qaeda of VMs in that it produced a massive overreaction to the perceived threat? | 17:01 | |
| allison | davidfetter: heh :) good analogy | ||
| and in the process, wiped out it's competitive advantage | |||
| davidfetter | you never know *how* you're going to change the world. it's nice when you get to change it :) | 17:02 | |
| allison | I agree :) | ||
| Tweaking Microsoft and Sun is something I'll remember fondly :) | |||
| davidfetter | re: sun, /requiescat in pace/ | 17:03 | |
| allison | at the rate they're going Microsoft won't be far behind | 17:04 | |
| seems like Oracle has the greatest motivation to pick them up too :) | 17:05 | ||
| pmichaud | good morning, #parrot | 17:09 | |
| allison | good morning, pmichaud | 17:10 | |
| benabik | o/ pmichaud | ||
| pmichaud | very interesting discussion on parrot-dev. :-) | 17:11 | |
| allison | indeed | 17:12 | |
| dalek | p/rx-portability: f5d0a8b | jnthn++ | / (5 files): Stub in an NFA representation. We'll keep it in the current form for construction; this is what we'll feed to the executor and also serialize them as. |
17:13 | |
| p/rx-portability: ecc5234 | jnthn++ | src/QAST/Operations.nqp: Sketch in some nqp:: ops for NFA handling. |
|||
| p/rx-portability: ce1308b | jnthn++ | src/stage0/ (9 files): Update bootstrap to get nqp::ops. |
|||
| p/rx-portability: b027079 | jnthn++ | src/ (3 files): Implement various NFA ops. |
|||
| p/rx-portability: 5980aa5 | jnthn++ | src/QRegex/NFA.nqp: Start using new NFA REPR and ops. Avoids doing a lot of v-table calls while evaluating the NFA (can do a bit more improvement yet also). This should also help ease NFA porting, plus it's good to get this cleared up before porting things. |
|||
| pmichaud | allison: I found your summary of the situation to be particularly helpful, thanks for writing it. | ||
| allison | pmichaud: thanks, it's something I've thought a lot about over the years | 17:15 | |
| pmichaud | I'm trying to figure out how I can be most helpful to the discussion, especially with respect to "what Rakudo would like from Parrot", but I haven't found the right "hooks" to be able to add my thoughts yet. | 17:22 | |
| although reading yesterday's #parrot logs, it looks to me as though moritz++ has it about right :) | 17:26 | ||
| allison | pmichaud: I think the biggest question so far with respect to Rakudo, is whether it has any interest at all in Parrot in any form. | 17:29 | |
| pmichaud: If so, we get into the finer details of "what form?" | |||
| pmichaud | Well, clearly we're not ready for Parrot to disappear entirely -- it's still the only platform on which we run. | 17:30 | |
| allison | pmichaud: But if not, it's quite simple, Parrot shouldn't target Rakudo if Rakudo isn't going to use it anyway. | ||
| pmichaud: Well, even if the project stopped tomorrow, the Parrot codebase would still be out there under the same license as Rakudo. | |||
| pmichaud | right. | ||
| allison | pmichaud: So, it's not "going away" in that sense. | ||
| pmichaud | and that's always been my fallback if Parrot took a direction that Rakudo couldn't easily follow. | 17:31 | |
| allison | yes | ||
| pmichaud | as far as whether we have any interest in Parrot in any form, there are forms in which we'd be interested, yes. Right now I think our main concern is the same one that has bugged us for a while -- namely, performance. | 17:34 | |
| allison | without profiling to find the performance bottlenecks, I can't say where they are for sure | 17:36 | |
| but, I can say for sure that they exist | |||
| and, my experience suggests that they're probably about equally distributed over lines of code | |||
| i.e. in both the Parrot codebase and the Rakudo codebase | |||
| but, the only way to tackle it is head on | |||
| do the profiling | 17:37 | ||
| be heartless, cut the low performing code | |||
| rip, tear, drop, squash | |||
| it requires setting a goal for *what* should perform well | |||
| while Parrot has always stuck to a kind of least-common-denominator | 17:38 | ||
| pmichaud | yeah, and profiling has been a big issue, because we don't have any Parrot devs that are willing to do look in depth at NQP or Rakudo code, and we don't have any Rakudo/NQP devs that want to dive deep enough into Parrot to instrument it | ||
| benabik would be willing if he had tuits. | 17:39 | ||
| allison | pmichaud: it's back to the tragedy of the separation | 17:40 | |
| pmichaud: it introduces a chasm between two parts of the Perl 6 implementation, and things that fall in the middle get lost | |||
|
17:41
zby_home joined
|
|||
| pmichaud | anyway, I think that gets around to answering your question then (more) | 17:41 | |
| or, at least answering the larger question | |||
| if Parrot wants to remain relevant to Rakudo, or it wants to target Rakudo, there have to be some Parrot devs that are willing to dive into actually writing and running some Perl 6 code. Parrot hasn't had that for a couple of years. | 17:42 | ||
| and maybe longer | |||
| allison | yes | 17:43 | |
| (various historical reasons, but none really matter anymore) | |||
| pmichaud: on the Parrot side, I get the impression that there are people interested in Perl 6 | 17:46 | ||
| that is, I've heard more people interested in refocusing on Rakudo than on any of the other alternate futures proposed | |||
| pmichaud | allison: but is that interest "we want to write Perl 6 code" or "Rakudo's our primary customer and the only path for Parrot survival"? | ||
| wait, rephrasing | 17:47 | ||
| allison | pmichaud: not quite either, but close, more "Perl 6 is the reason we got into Parrot in the first place" | ||
| pmichaud | well, I know that many people got into Parrot because of language interop possibilities, more than Perl 6 | 17:48 | |
|
17:49
uvtc joined
|
|||
| pmichaud | I think many people acknowledge that Perl 6 is the reason for Parrot's existence, but I don't know how many current devs joined up primarily because of Perl 6 | 17:50 | |
| uvtc | If Parrot is no longer really viable as a multi-language VM (due to lack of contributors/tuits/competition/whatever), and if Rakudo is still committed to running on multiple backends, and since Rakudo still relies on Parrot (since the JVM port is still a little ways away), what harm would there be in moving Parrot under Rakudo's aegis with an aim toward having it be "the Rakudo back-end that comes with Rakudo"? | ||
| pmichaud | s/Parrot's existence/Parrot's initial existence/ | ||
| uvtc | As someone who's used Clojure a bit (another JVM lanugage), one common sentiment I see is folks who don't like Java and the JVM. Using a JVM language often means falling back on Java libs when your language doesn't have what you need. | ||
| Well, that complaint along with slow start-up time. | |||
| pmichaud | uvtc: there's no harm, but I don't think there's much interest in doing that, as measured in committers | 17:51 | |
| uvtc: it's not enough to say "Parrot moves under Rakudo" -- there have to be some people that are willing to make it happen as measured in code commits | 17:52 | ||
| allison | uvtc: and the risk is totally dedicating Parrot to Rakudo, only to find that Rakudo preferrs JVM anyway | 17:54 | |
| uvtc: then Parrot would have run down a path to no purpose | |||
| uvtc: and killed itself | 17:55 | ||
| pmichud: yes, I think you're right, that Parrot has attracted many people with very different goals over the years | |||
| pmichaud: the mailing list posts of "possible futures" certainly convince me of that | |||
| uvtc | allison: right. I guess the question is, do the other alternatives run the same risk of killing the project. | 17:56 | |
| allison | pmichaud: each one is a completely different plan, motivated by a completely different set of goals | ||
| uvtc: the clearest alternative with a chance of success is to ditch Perl 6 entirely, and focus on being a light, fast VM | 17:57 | ||
| uvtc: it likely means picking one language to focus on | 17:58 | ||
|
17:58
Reini joined
|
|||
| allison | uvtc: there's every bit as much chance it won't succeed, but that chance doesn't depend on another project's future choices | 17:58 | |
| uvtc: does that make sense? | |||
| uvtc: it's not a matter of guaranteed success anywhere | 17:59 | ||
| uvtc | allison: you wrote "ditch Perl 6 entirely", then "picking one language to focus on". Do you mean that Parrot should pick one language to focus on that's not Perl 6? (Sorry if I'm misunderstanding you here.) | ||
| allison | uvtc: yes, that's the alternate path | ||
| uvtc: probably a really popular language like Javascript | 18:00 | ||
| uvtc: I'm not saying I prefer that route :) | |||
| uvtc | :) | ||
| allison | uvtc: I'm just looking at it with a "businessman's eye" | ||
| uvtc: if this were a startup, what are it's chances for survival? | 18:01 | ||
| uvtc: the problem with the "multi-language" story, is it needs an interop lure | |||
| uvtc | My understanding is that JS already has numerous and very fast VMs available. I'd say its chances for survival as a JS VM are very small. | ||
| allison | The JVM interop story is Java. | 18:02 | |
| the DLR interop story is .Net | |||
| Offering interop with... nothing, isn't compelling. | |||
| pmichaud | In some sense, NQP's interop story is Perl 6, I think. | 18:03 | |
| if I'm understanding allison correctly. | |||
| allison | pmichaud: yes | ||
| though, commercially, interop with Perl 6 isn't highly sought after, yet | 18:04 | ||
| pmichaud | correct, although that was true for Java too at one point (but in a different market) | ||
| allison | also true for ALGOL | ||
| success is possible, but no guarantees | 18:05 | ||
| the only interop I can think would be compelling at this point is interop with Perl 5 | |||
| which has, of course, been tried | |||
| Perl 5 is what people are actually using | 18:06 | ||
| really, millions of people | |||
| billions of lines of code | |||
| it's a real, viable project | |||
| hugely successful | |||
| pmichaud | the vision that was articulated at the reunification summit was that Perl 5 and Perl 6 need to start evolving towards each other, especially in library design | ||
| allison | yes, I'd agree | 18:07 | |
| Perl 6's only path to success is a smooth transition for all the Perl 5 users | |||
| it has to actually be the next version of Perl | 18:08 | ||
| pmichaud | and there was significant buy-in to that vision. Trying to get Perl 6 to run all existing Perl 5 code is the wrong vision, because there's a lot of Perl 5 code that Perl 5 doesn't even want to support | ||
| allison | not just "inspired by" perl | ||
| moritz believes that Perl 6 has lots of potential in its own right, not just for attracting Perl 5 developers | |||
| pmichaud | but if Perl 5 can migrate to something that Perl 6 can interop with more cleanly, then both languages have a good path forward with a long future | ||
| allison | fair enough, though that's dangerously close to what Python 3 has done | 18:09 | |
| and, it hasn't been successful | |||
| people are just refusing to take the porting steps necessary | |||
| and sticking with the old Python 2 code | |||
| pmichaud | allison: well, we're not talking about porting as much as redesigning libraries altogether (more) | ||
| allison | yes, people are refusing to write the libraries in Python 3 | 18:10 | |
| pmichaud | we already see continued churn in CPAN and the Perl 5 world as new ideas (e.g., Moose) become a core part of the ecosystem | ||
| in an economic world, we'd call it "creative destruction", as older libraries are being replaced by new designs | 18:11 | ||
| so it's no so much that we need the new libraries written in Perl 6, but rather we need APIs and underlying models that are Perl 6-like in their conception | |||
| allison | Yes | ||
| particularly, a real object model | |||
| (in Perl 5) | 18:12 | ||
| pmichaud | right, which things like Moose and the p5mop projects have been investigating | ||
| allison | and investigating quite well | ||
| but, they've kind of hit the limits of what they can do as mere "add ons" to Perl 5 | 18:13 | ||
| uvtc | Please excuse my ignorance here, but is there any reasonably possible path to follow where Parrot could provide an easy way for Perl 6 code to call Perl 5 libraries? B/c if there is, that would seem to be a pretty compelling direction for a slimmed-down Rakudo-dedicated Parrot. | ||
| allison | Moose would hugely benefit from core support for it's class declaration syntax | ||
| uvtc: see Ponie, failure circa 2002ish | 18:14 | ||
| pmichaud | moritz: I agree with you, Perl 6 has lots of potential in its own right, and someday it will hopefully be recognized as such. It needs a good real-world application. | ||
| uvtc: see also blizkost | |||
| uvtc | allison: I don't mean a Perl 5 on Parrot. I mean a way to talk to /usr/bin/perl (Perl 5). | 18:15 | |
| pmichaud | uvtc: a way to talk to Perl 5 was also discussed at the reunification summit, based on some of the work mst has been doing with shipping objects over communication channels | 18:16 | |
| allison | uvtc: well, inter-process communication is easy enough, though not entirely satisfying | ||
| uvtc: like, if you think about it, tossing blobs of JSON around is pretty common practice | 18:17 | ||
| uvtc: but serialization and deserialization is pretty slow | |||
| uvtc: and there's no way to really speed it up | |||
| benabik | You can do better than parsing/emitting JSON if you're doing everything locally, but there's still cost somewhere. | 18:18 | |
| allison | uvtc: which is a long-winded way of saying "yes, with challenges" | ||
| pmichaud | I think it should also be said that it's worth trying or prototyping even if slow | 18:19 | |
| allison | yup | ||
| uvtc | Well, makes it easy enough to talk to Perl 5 modules, while at the same time gently encouraging you to consider writing replacements in Perl 6. :) | ||
| pmichaud | the fact that Perl 5 is shipping objects across the wire to Perl 5 on the other side means that there are applications for it | ||
| allison | the devil is really in the API for communication, on both the Perl 5 side and the Perl 6 side | 18:20 | |
| pmichaud | right, and a good way to get to that API is to try a few things and see what works. see "evolution" and "creative destruction" :) | ||
| allison | if they "feel like" you're just loading a Perl 5 object in Perl 6, it'll be more successful than if it requires a lot of ornate plumbing | 18:21 | |
| people hate writing linking boilerplate | |||
| uvtc | Anyhow, I suspect that the combination of "slimmed-down Rakudo-focused" *plus* "good-enough interop with Perl 5" might be Parrot's sweet spot for the future. But that's just how it looks from my armchair over here. :) | 18:22 | |
| allison | uvtc: I will say, the JVM is unlikely to ever offer a really good story for interop with Perl 5 | 18:23 | |
| uvtc: so it'll either be in Rakudo/NQP, or in Parrot that it has to happen | |||
| pmichaud | right | ||
| and part of NQP's story is that we hope to be a path by which some form of Perl 5 can start to appear on the JVM | |||
| cotto | time for some serious backscrolling | 18:28 | |
| allison | pmichaud: So, is there anything Parrot could provide to Rakudo that would give it an edge over JVM? From your perspective? | ||
| pmichaud | speed and interop with C libraries are the two that come to mind to me | 18:29 | |
| I don't know that speed will be achievable without some major internals rework | |||
| allison | agreed | 18:30 | |
| pmichaud | Parrot's NCI isn't really the interface we want; indeed, it's a bit of a sore point since Parrot's self-started NCI changes in 2011 broke so many things we were depending on. NQP has built its own NCI interface instead. | ||
| allison | I believe it's achievable with some major internals rework, especially since speed used to be one of Parrot's killer features. | 18:31 | |
| pmichaud: doesn't that mean you're doing your own C interop now? | |||
| pmichaud | allison: essentially, yes. I think we what we have is still a little primitive, though, although it's getting much less primitive rather quickly. | 18:32 | |
| uvtc | (interop with C libraries)++. When using JVM languages, there tends to be constant pressure to use Java-alternatives to your favorite C libs. | ||
| allison | pmichaud: The reason I ask, is that what I'm hearing from Rakudo so far is "We've got that covered ourselves" on everything that Parrot might offer. | ||
| pmichaud: I'm not even clear what Rakudo is using Parrot for now. | 18:33 | ||
| pmichaud: sounds like not much, which could make for a very light and fast Parrot :) | |||
| pmichaud: though, not exactly feature-rich | 18:34 | ||
| pmichaud: GC? does Rakudo still use Parrot's GC? | |||
| moritz | yes, it does | 18:35 | |
| allison | i.e. basic memory allocation for objects | ||
| as well as cleanup | |||
| moritz | it also uses parrot's exception handling | ||
| IO | |||
| allison | dispatch only in the most primitive of senses, and Rakudo wishes it could short-circuit more | ||
| does Rakudo manage its own call stack? | 18:36 | ||
| moritz | I don't think so | ||
| pmichaud | I think we still use Parrot contexts, yes | ||
| allison | how about C-level PMCs? | 18:37 | |
| pmichaud | not so much anymore, except where they're needed for IO | ||
| allison | I know Rakudo has it's own object hierarchy | ||
| basic strings, ints, and floats? | |||
| moritz | yes, we use them | 18:38 | |
| we also use parrot's lexicals | |||
| pmichaud | we use strings ints and floats in registers, but I don't think we make much use of String, Integer, and Float PMCs | ||
| allison | basic code objects, then | ||
| pmichaud: yeah, I would expect the registers to be more useful than the PMCs there | 18:39 | ||
| moritz | pmichaud: I think there are a few sparse cases where we use (at least some of) those PMCs, because some functionality isn't available as ops | ||
| but that's stuff that could easily be changed, given the right ops | |||
| allison | ah, yes, how about Parrot's massive body of ops? | ||
| how much of that does Rakudo use? | |||
| pmichaud | We don't use many parrot ops. I can give you a basic count in a second... :-) | ||
| allison | stripping away a pile of useless ops would be a quick optimization :) | 18:40 | |
| cotto | This sounds like a plan for things that could be removed from Parrot as step 1 of refocusing on Rakudo. | ||
| moritz | github.com/perl6/nqp/blob/master/s...mpiler.nqp lists nearly all the parrot ops we use | ||
| pmichaud | cotto: yes, but there's a big "but" | ||
| cotto | pmichaud: I'm sure there's more than one. | ||
| pmichaud | github.com/perl6/nqp/blob/master/d...opcode.txt # a more readable list | 18:41 | |
| moritz | no, wrong link, wait a sec | ||
| pmichaud: I'm not sure how up-to-date that is | |||
| pmichaud | cotto: on parrot-dev, someone mentioned "pct, tge, pge, nqp-rx, winxed, libffi" as being Parrot baggage that is unnecessary to Rakudo | 18:42 | |
| cotto | Looking at coverage isn't a hard problem. | ||
| pmichaud: yes, to the extent that they're not necessary to build Parrot itself. | |||
| pmichaud | I agree that it's unnecessary baggage to Rakudo, but the items mentioned also aren't impediments to Rakudo either | ||
| i.e., they don't impact Rakudo's performance significantly | 18:43 | ||
| so eliminating them doesn't really improve the situation for Rakudo, except to the extent that eliminating them frees Parrot to focus on things that would help Rakudo | |||
| allison | pmichaud: memory and execution speed aren't the only limited resources | ||
| pmichaud: maintenance and development focus is relevant too | 18:44 | ||
| pmichaud | allison: yes, see what I just wrote :) | ||
| allison | pmicaud: aye, thinking alike :) | ||
| pmichaud | I think I'm reacting to something a bit specific here (more) | ||
| allison | and, it's likely that cutting support for all those extras would also make it easier to trim the parrot core | 18:45 | |
| as in, each of those bits depends on different Parrot features than Rakudo does | |||
| pmichaud | from a Rakudo perspective, over the past several years there's been a tendency to say "let's make Parrot better for Rakudo" which starts with "okay, we need to clean up XYZ and then we'll be able to make improvements" (more) | ||
| so then there's a lot of effort put into "clean up XYZ", which gets done, and everyone congratulates themselves on completing a very difficult task (more) | 18:46 | ||
| allison | and then get bogged down in the implications of the cleanup for all the many other uses of Parrot | ||
| yeah | |||
| pmichaud | ...and we never get to the second part, which is "we'll be able to make improvements" | ||
| cotto | What I'm hoping for with a reduced focus is that when Parrot developers are looking at a profile and notice something slow, the only factors to consider are if it breaks Parrot and if it breaks Rakudo. | ||
| This gets rid of the idea that there might be some other language that'd want feature x, so we have to keep it. | 18:47 | ||
| still hard work, but less constrained | |||
| pmichaud | If that's actually been a bottleneck for Parrot development in recent times, then yes, it'd be a help to move things forward. | 18:48 | |
| My perception has been that this isn't the bottleneck or limiting factor. | |||
| allison | the biggest limiting factor is that it's a big scary codebase | ||
| which is related, but not exactly the same | 18:49 | ||
| cotto | That's a relevant factor. | ||
| allison | and also helped substantially by ripping out a bunch of stuff | 18:51 | |
| I have to say, I'm tempted, I really am. | 18:55 | ||
| That's the only alternate I'm tempted by. | |||
| cotto | Even if it's only ripping out something relatively symbolic like tge at first, I still really like the idea. It's a strong signal that Parrot is heading in a different direction. | 18:57 | |
| allison: thanks for the historical background. | |||
| allison | cotto: anytime :) | 18:58 | |
| uvtc | Maybe this is a crazy question, but would it make sense to create a fork of parrot under the github.com/perl6 org? That way, whomever has a perl6 commit bit would also be able to commit changes to parrot as well. Also it would send a strong signal re. what the new goals are. | 18:59 | |
| s/are/would be/ | 19:00 | ||
| pmichaud | I think it might be easier and cleaner to simply open up commitbit policy on github.com/parrot/parrot, if that's a blocker. | ||
| allison | pmicaud: AFAICT, commitbits aren't really a blocker, tuits are | 19:01 | |
| cotto | That's my view also. | ||
| pmichaud | same here. | 19:02 | |
| cotto | Though I'm not sure what the implications for the CLA requirement would be should the projects eventually reach the point where both sides are comfortable merging. | 19:03 | |
| again, big if | |||
| allison | what are the requirements on the Rakudo side now? | ||
| does Rakudo still use Perl CLA? | |||
| (because if that's a blocker, it's easy enough to adopt something like the Linux Kernel certificate of origin) | 19:04 | ||
| (which requires no signing) | |||
| Legal infrastructure should always serve the project, not the project serve the legal infrastructure :) | 19:06 | ||
| cotto: and, my sense is that we're not talking about Rakudo and Parrot "merging" | 19:07 | ||
| moritz | fwiw removing tge isn't trivial. nci_thung_gen.pir depends on data_json, which in turn depends on TGE | ||
| allison | cotto: more about Parrot joining TPF, with the express purpose of collaborating with Rakudo | ||
| cotto | I don't necessarily mean merge in the git sense, more what you just said. | 19:08 | |
| allison | cotto: at least, that's the sense I get from Rakudo folks | ||
| cotto: yeah | |||
| moritz: replace it with an NQP-based JSON parser? | |||
| moritz: bootstrapping required, but that doesn't seem to be scary to Rakudo folks | 19:09 | ||
|
19:09
Mike-PerlRecruiter_ joined
|
|||
| moritz | sure, doable, just not trivial | 19:10 | |
| allison | yup | ||
| arnsholt | allison: (from scrollback) If you want more info on the NQP FFI subsystem, I can fill you in. The basic design is jnthn's, but I've been the one working on it for about a year now | 19:11 | |
| allison | arnsholt: at the moment I was largely looking for the broad brushstrokes of whether NQP needs Parrot for C interop anymore | 19:12 | |
| arnsholt: though, that would be an interesting chat to have at some point :) | 19:13 | ||
| arnsholt | Sounds like a plan. I'll be around =) | ||
|
19:15
not_gerd joined
|
|||
| not_gerd | ~~ | 19:15 | |
| also keep in mind that it's possible to rip out subsystems and check in the generated files instead until replacements are ready | 19:21 | ||
| as far as I can tell, nqp-rx is mainly necessary because of ops2c and HLL.pbc (which gets generated from a stage0 PIR file anyway) | |||
| cotto | For JSON, we can easily port JSON::PP. | 19:22 | |
| not_gerd | check in the NQP-generated PIR files for ops2c and nqp-rx can go the way of the dodo | ||
| moritz | note that this requires all of 6model | 19:23 | |
| allison | moritz: replacing Parrot objects with 6model is a viable negotiation | ||
| moritz | sure | ||
| allison | moritz: though it may also be Parrot just provides no object model at all | ||
| moritz | I just want to illustratet that stuff is more tightly coupled than it might seem at first glance | 19:24 | |
| allison | (not that the strategy has worked well for Perl 5...) | ||
| moritz: it is, but how much of that tight coupling does Rakudo/NQP depend on? | |||
| moritz: like, for example, ops2c gets a lot simpler if the only ops needed are the few NQP uses | 19:25 | ||
| pmichaud | note that one could check in the PIR code for ops2c and still eliminate nqp-rx, I think. | 19:27 | |
| not_gerd | pmichaud: that's what I was getting at - NQP should have read NQP-rx | 19:28 | |
| cotto | I'd like to see Parrot's uses of nqp-rx migrated to nqp. | ||
| not_gerd | cotto: there might be bootstrapping issues | 19:29 | |
| not unsolvable, but someone needs to take a closer look | |||
| cotto | not_gerd: yes. That was the first issue I ran into when looking at it. | ||
| pmichaud | I have to run for a while -- bbl | 19:30 | |
| cotto | doable, but not without thought | ||
| I've had lunch sitting next to me for the last 10 minutes getting cold, so ditto. | |||
|
19:47
Eddward joined
19:50
bouncy joined
20:18
brrt joined
|
|||
| brrt | hi all | 20:23 | |
| whats the deal with closing off parrot? | |||
| i'm unhappy about it\\ | 20:27 | ||
| not_gerd | apparently, PaFo will close its doors | 20:28 | |
| the future of Parrot itself is yet to be decided | |||
| cotto | brrt: not so much closing as refining its focus | 20:29 | |
| in my head, at least | |||
| brrt | well, what focus are we talking about, then? | 20:32 | |
| cotto | changing focus from hosting all dynamic languages to supporting Rakudo exclusively | 20:33 | |
| brrt | hmmm | 20:37 | |
| but, radical suggestion, wouldn't supporting rakudo pretty much mean that you could support any other language as well? | |||
| cotto | It needs a lot of hmmming. | ||
| brrt | it does | ||
| but perl6 is much of a superset of other languages | |||
| cotto | yes, but incidentally | ||
| brrt | other suggestion: why does rakudo need a vm at all | ||
| why couldn't we / they just compile nqp to x86 / arm / whatever | 20:38 | ||
| basically, if parrot becomes 'the thing to run rakudo on', well, the limits are off | |||
| cotto | s/the/a/, given recent nqp/jvm work | 20:39 | |
| brrt | well, yes, sure\\ | ||
| if nqp/jvm takes off (which i expect it will, it is a better fit than i had imagined) will parrot still make sense? | 20:40 | ||
|
20:40
contingencyplan joined
|
|||
| cotto | nqp/jvm is showing initial promising signs, but that's not necessarily an indicator of how the end result will look. | 20:41 | |
| brrt | that is true | 20:42 | |
| is anything still happening on the m0 front? | |||
| basically, why is the perl community disintegrating? | |||
| cotto | wrt Parrot in an nqp/jvm world, I can't say for sure. | ||
| I don't think that much will be happening with M0 in the immediate future. | 20:43 | ||
| My personal goal is to trim down Parrot to what's useful for Rakudo rather than rebuild. | 20:44 | ||
| allison | brtt: the idea that supporting Perl 6 features "implicitly" supports all other languages is true in one sense | ||
| brrt: but there's a big difference between "implicit support" and actual implementation work | 20:45 | ||
| cotto | allison: exactly | ||
| allison | brrt: and when the rubber hits the road, Parrot's lack of focus has contributed to implementation efforts flying all over the map | ||
| cotto | The idea is to get one language into a production-ready state, then possibly look at branching out. | ||
| allison | brrt: instead of delivering a usable product | ||
| brrt | well, lack of focus is a general thing now, isn't it? | 20:46 | |
| but yeah | |||
| actually, looking at the parrot source code it isn't at all the horror it is made out to be | |||
| allison | brrt: the team has been pretty good at sticking to coding style guidelines and passing tests, which buys a lot | 20:47 | |
| brrt: even when working on a very complex problem | |||
| brrt | yeah, so why the panic attack all of the sudden? | 20:48 | |
| allison | brrt: it was started by the discussions over closing the Parrot Foundation | ||
| (which will be happening, no matter what the Parrot project does) | 20:49 | ||
| not_gerd | brrt: because whiteknight and rurban have moved on, PaFo is closing shop and Rakudo gets a JVM backend | ||
| allison | brrt: which lead to "okay then, what's happening in the Parrot project?" | ||
| not_gerd: close, I mean PaFo has been talking about closing for months now | |||
| not_gerd: and we all just assumed "of course, Parrot development will continue, we just need to find it a new home" | 20:50 | ||
| brrt | hmm | ||
| fair enough | |||
| allison | not_gerd: it was only Friday that I thought to ask "will Parrot development actually continue?" | 20:51 | |
| brrt: and so far, no one has actually said "I'll do it" | |||
| brrt | hmm | ||
| who could do it? | |||
| whiteknight++ gave it a long run | |||
| but at the end | 20:52 | ||
| allison | brrt: though there are currently 4 people on the mailing list who have said "it should be done this way" | ||
| er, 3? | |||
| I lost count | |||
| brrt | it seems everybody who would've done it has done it alone | ||
| allison | brrt: in recent years, yes | ||
| cotto | I've been trying to figure out a plan that I can get one or two others to buy into. | ||
| moritz | and one who wants cross-platform GUI stuff on parrot :-) | ||
| brrt | moritz, that one was hilarious | ||
| cotto | That one came out of left field. | ||
| allison | moritz: he's not far off, it's just that HTML5 is a simple text output, and not part of the VM | 20:53 | |
| moritz: I at least give him credit-due for thinking about practical use cases | |||
| moritz: instead of just compiler theory | |||
| brrt | yes, well, vms are always somewhat removed from practical use cases, aren't they? | 20:54 | |
| allison | brrt: sort of, yes | ||
| brrt: at least it's very easy to fall into the trap of making the "framework" king | |||
| brrt: but, a VM isn't much use if it isn't actually used for something | 20:55 | ||
| brrt: it's just... hot air | |||
| cotto: and, yes, a plan that can rally the interest of multiple people is the key | 20:56 | ||
| cotto | allison: yeah. I'd be doing that now if I didn't have some $dayjob hours to make up. | ||
| allison | cotto: me too :) | ||
| cotto | I hoping for some time tonight. I had a nice email all drafted, then 50 other replies happened. | 20:57 | |
| allison | heh :) | ||
| cotto | *I'm | ||
| allison | and another long IRC thread | ||
| brrt | :-) | ||
| well | |||
| i'm following any and all discussions | |||
| allison | cotto: I'm toying with the idea of dropping an astrophysics class this year to dive into "one more go" on Parrot for Rakudo/Perl 6 | 20:58 | |
| cotto | allison: that sounds like a hard choice | ||
| allison | cotto: I haven't *quite* convinced myself that we have enough of a plan to go on | 20:59 | |
| cotto | there's so much awesomeness in astrophysics | ||
| Just tell me that it wouldn't be taught by Neil deGrasse Tyson. | |||
| allison | cotto: but the pieces I find most compelling are refocus on Rakudo performance, rip out everything else, and add Perl 5 compatibility (by a more reasonable path that was previously tried) | 21:00 | |
| *than | |||
| nah, just ordinary profs | |||
| but, it is getting into general relativity, so beyond the basics of stars and planets | 21:01 | ||
| definitely interesting | |||
| uvtc | Astrophysics is fun intellectual stimulation, but not very practical. | ||
| cotto | uvtc: the tiny black hole sitting on my desk says otherwise. | ||
| ;) | |||
| allison | uvtc: depends on your goal | ||
| uvtc: in some ways it's *very* practical, it's totally focused on physical matter and the interactions between real world objects | 21:02 | ||
| uvtc: I find that grounding in reality refreshing | |||
| not_gerd | one of my profs got a patent on energy generation via miniture black holes as a practical joke | ||
| allison | uvtc: especially after years in CS where people will argue to their dying day that their theory is "right" with no proof | ||
| uvtc | In the past I've spent lots of time solving physics problems. And it's certainly very personally rewarding, and refreshing. | 21:03 | |
| allison | uvtc: and no real world way to ever get proof | ||
| not_gerd: sounds like a fun professor :) | |||
| uvtc: I think CS folks could do with an upset as radical as realizing the earth isn't flat | 21:04 | ||
| uvtc: and the sun doesn't orbit the earth | |||
| uvtc: they're far too complacent | 21:05 | ||
| cotto | And that coding standards and separation of concerns are too much of a "real-world" concern. | ||
| uvtc | allison: Is that what drew you to Perl 6 in the first place? A language usable, yet modifiable enough to do radical apple-cart-toppling stuff with? :) | 21:06 | |
| allison | cotto: yeah, the dismiss the only possible chances of reality shaking up their constructed fiction | ||
| *they | |||
| not_gerd | well, there's the video by the Forth guy (Moore?) that tells you you shouldn't use libraries and that a stack depth of 18 should be enough for everyone | ||
| allison | uvtc: sort of the other way around | 21:07 | |
| uvtc: I got into Perl 6 quite early on | |||
| uvtc: mainly on the basis of my background in linguistics | |||
| uvtc: i.e. "how can we make a language that more closely maps to the human brain" | 21:08 | ||
| (a computer language, that is) | |||
| uvtc: it was only as I got deeper and deeper into "and how do we make that language actually work?" that I hit the wall of prejudice and stupidity in CS :) | 21:09 | ||
|
21:09
bouncy joined
|
|||
| allison | uvtc: and then was lured out of it by quantum computing | 21:11 | |
| uvtc: and from there into quantum mechanics | 21:12 | ||
| uvtc: and from there into astrophysics | |||
| uvtc | astrophysics is certainly very alluring. | ||
| allison | uvtc: I still have this idea of "tilting windmills" with CS by using quantum wave functions to write "proofs" for dynamic languages | 21:13 | |
| uvtc: we'll see if I get to it | |||
| uvtc: on the whole, I think I find quantum mechanics more interesting than astrophysics | 21:14 | ||
| uvtc: but both are interesting | |||
| uvtc | allison: It sounds like you're interested in playing the long game wrt Perl 6. And that you're not particularly crazy about the idea of the JVM becoming the dominant Perl 6 backend... | ||
| allison | uvtc: There's a bit of personal motivation in there. | 21:15 | |
| uvtc: I'm still a Perl developer. I (partly) make money writing Perl code. | |||
| uvtc: I don't want to find myself working on the JVM in 3 years. Or even 10 years. | 21:16 | ||
| uvtc: That's not to say I'm against having a Perl 6 implementation on the JVM. | |||
| uvtc: That's totally cool, and if someone wants to write it, they have my hearty support. From a distance. | 21:17 | ||
| uvtc: I just don't want to use i. | |||
| *it | |||
| uvtc | Well, if there's a time to dive back into Parrot and give the JVM a run for its money, seems like now's probably the time. :) | ||
| allison | uvtc: exactly. Astrophysics isn't going anywhere. It'll be pretty much the same next year as it is this year. | 21:18 | |
| uvtc: Parrot might not be. | |||
| uvtc | allison: was just about to type that. :) | ||
| " I don't want to find myself working on the JVM in 3 years. Or even 10 years." <--- I'd be willing to bet that a lot of Perlers share that sentiment. | 21:19 | ||
| allison | uvtc: Yeah, I imagine so. | ||
| uvtc: It's a target audience thing. | 21:20 | ||
| brrt | i have my doubts about jvm as well | ||
| allison, what do you mean by target audience? | 21:21 | ||
| allison | uvtc: Someone (I don't recall who) made the point that there are a lot of Java libraries out there that people might use. | ||
| uvtc: But, the question is, who? | |||
| and how many of them? | |||
| I don't think Perl 5 developers are suddenly going to start looking for Java libraries they can use. | |||
| brrt | do perl6 people know java languages | ||
| s/languages/libraries/ | 21:22 | ||
| what does 'we can haz lotsa libraries' even mean | |||
| allison | And, I don't think even a tiny fraction of Java developers are going to start using Perl 6 to use their existing Java libraries. | ||
| So, it's a tiny cross-section of two very large communities. | |||
| Not compelling, business-wise. | |||
| (Back to "if this was a startup...") | 21:23 | ||
| brrt | java developers are jumping to scala, however | ||
| allison | brrt: sure, but scala is totally focused on Java features | ||
| brrt: is Perl 6 going to take that step? | |||
| brrt :if it does, I'd make a pretty safe bet that Perl 5 users won't like it | 21:24 | ||
| brrt | blegh, i don't know | ||
| perl6 is pretty OO though, ahnd has functional stuff | |||
| allison | brrt: without much certainty that Java users will like it | ||
| uvtc | allison: I think that was me. The point is, if you're using a language impl on the jvm, and you need a lib that your language doesn't provide, you're faced with: "do I write it myself or go looking for a Java alternative?" | ||
| brrt | why isn't there a 'simplest p6 that could possibly work' | ||
| uvtc | I don't get the impression that Perlers are going to be terribly excited by that prospect. | 21:25 | |
| allison | brrt: I'd guess "just because it hasn't been done yet". Simplification is often more work than the original idea. | ||
| uvtc: Perlers won't be excited by looking for Java libraries instead of writing it themselves? | 21:26 | ||
| uvtc: It certainly does seem to be the Perl way to "write it myself". | |||
| uvtc | allison: I think it's going to be percieved as a "rock and a hard place" situation. | ||
| allison | uvtc: It's the essence of TMTOWTDI. | 21:27 | |
| brrt is off for sleeping | |||
| good discussion, thanks people | |||
| good to see people still /care/ | |||
| allison | thanks for the thoughts, brrt | 21:28 | |
| cotto | 'night brrt | ||
| brrt | :-) 'night all | ||
| not_gerd | anyone wants to make a pretty picture from that: gist.github.com/gerdr/4751112 | ||
| cotto | not_gerd: graphviz is surprisingly easy to use | 21:29 | |
| I don't mean that to blow you off, just that I'm trying to focus on other things now so I can focus on Parrot things later tonight. | 21:31 | ||
| allison | not_gerd: that's a very long list :( | 21:32 | |
| not_gerd: aiming to cut it in half could be a good first goal | 21:33 | ||
|
21:37
Reini joined
|
|||
| uvtc | allison: I agree that Perlers often do like to "write it myself", but my thought is that --- when your lang impl is on the JVM --- there's continuous gentle pressure to "just use the existing Java lib for that" (maybe self-imposed, maybe even by your employer). And then you find yourself in the javadocs and using interop all the time, and even maybe dropping down to Java for performance. Seems to me like Perl and Java are like oil and water, an | 21:45 | |
| d that this might not be a long-term recipe for success. | |||
| allison | uvtc: yes, I lean in that direction too | 21:48 | |
| Eddward | From the peanut gallery, I've like perl because you can learn it in bit-n-pieces. I think the term was you can learn it "incrementally." | 21:51 | |
| My experience with java is that learning to use one library well requires to you to learn a few others or at least some new idioms too. | 21:52 | ||
| There mihgt be a cook book example, but then you don't know what you've done or how to fix it if the recipe wasn't exactly right for you. | 21:53 | ||
| I hope perl doesn't go that way. perl6 still looks like the language I want to use. | 21:54 | ||
| allison | Eddward: That's a good point, and does fit my experience working in Java. | 21:55 | |
| Eddward: (Both "old" Java and "Android" Java.) | |||
| Eddward | allison: I haven't had any experience with andriod. I'm glad that people who like java have it, but I find I don't think that way. | 21:56 | |
| I spend too much time fighting with IDEs that are needed to make up for language-isms. | |||
| not_gerd is tempted to rewrite ops2c in Perl6 and bootstrap by checking in generated files | 21:57 | ||
| allison | not_gerd: Perl6 or NQP? | ||
| not_gerd: Neither is a problem in the "focus on Rakudo" scenario, just curious. | 21:58 | ||
| not_gerd | allison: full-blown Perl6 | ||
| allison | not_gerd: and if there are only 20 ops in Parrot, do they even need to be generated? | ||
| not_gerd | allison: that... might be worth considering | 21:59 | |
| allison | not_gerd: or would it be better to just fork off the *current* generated C files, and start maintaining them as straight C code | 22:00 | |
| cotto | 20? This is sounding like m0. | ||
| allison | cotto: probably a different 20 than m0 | ||
| cotto: i.e. instead of redesigning the 20, just go with what NQP actually uses | |||
| cotto: and leave those in place, working as is | |||
| cotto: and ditch the rest | |||
| cotto | allison: nqp uses way more than 20 | ||
| even if you're just counting the core parrot ops | 22:01 | ||
| allison | cotto: it was a short list, fewer than 100 certainly | ||
| github.com/perl6/nqp/blob/master/d...opcode.txt | |||
| was what someone gave me | |||
| cotto | allison: that sounds more plausible. Once some has taken the time to produce and validate a list, it makes sense to ask if opsc is still needed. | 22:02 | |
| 20 is easy enough to maintain by hand. 100, maybe. | |||
| uvtc | focus on Rakudo + slimming down + "good-enough" Perl 5 interop + interop with C libs = "the great molting of 2013" ? :) | 22:04 | |
| cotto | Both of those needs a whole lot of planning. | 22:06 | |
|
22:08
Reini joined
|
|||
| not_gerd wishes everyone a good night and looks for a snack before heading off to bed | 22:12 | ||
|
22:12
not_gerd left
|
|||
| allison | cotto: and a whole lot of work | 22:16 | |
| must run, my son is in a piano concert this afternoon | |||
| uvtc | o/ | 22:17 | |
| cotto | allison: yes | ||
|
22:30
MikeFair joined
22:43
Reini joined
|
|||
| dalek | p/rx-portability: 5ecc011 | jnthn++ | src/ (3 files): Add nqp::const mechanism. Allows mapping constants in a backend-independent way. |
23:00 | |
| p/rx-portability: b7756b5 | jnthn++ | src/stage0/ (9 files): Update bootstrap. |
|||
| p/rx-portability: 081a30f | jnthn++ | src/QRegex/ (2 files): Lots of pir:: => nqp:: in NFA and Cursor. |
|||
|
23:07
pjcj joined
23:11
alester joined
23:14
Reini joined
23:44
Reini joined
|
|||