Parrot Debugger Language of Choice

Andrew Whitworth wknight8111 at gmail.com
Sat Apr 30 10:42:41 UTC 2011


First thing, I suggest strongly that you avoid C where possible. There
are some bits of the debugger that I am certain will need to be
written in C, to add the necessary hooks and things especially in the
runloop. Where possible, you should try to write your code in some
language that runs on top of Parrot. What that allows, especially if
you follow best practices, is for users of HLLs to implement their own
tools on top of your framework, in their own language. The Rakudo
guys, for instance, could write their own subclasses of your classes,
and substitute them for your own. Parrot won't know the difference,
it's all bytecode.

So that brings the choice to Winxed or NQP. Both are good choices,
though with different strengths and weaknesses. The issue of Winxed
not being included in the Parrot repo is not an issue. You could write
your code in winxed in a separate repo, and we could include a
"snapshot" of the generated PIR code in the repo. This is how we
distribute NQP, we take snapshots of the necessary files and
include them in the Parrot repo.

Eventually we might be able to do the same thing with Winxed itself,
and distribute a Winxed snapshot with Parrot. I can't speak for
NotFound on the issue, but he has suggested in the past he might be
willing to make a similar arrangement. If we have critical tools using
Winxed, that might help to inform our decisions in the future.

In the end you have to pick a language that you think you are most
comfortable with, and which you think is best for working in your
problem space. I can't answer those questions for you.

Good luck!

--Andrew Whitworth



On Fri, Apr 29, 2011 at 11:33 PM, Kevin Polulak <kpolulak at gmail.com> wrote:
> So I thought I was all set for GSoC. I was going to use nqp-rx, maybe a
> little C but now after carefully weighing the advantages and disadvantages,
> I'm very undecided. Here's the score:
>
> C
>
> Advantages
>
> Fast
> Familiar language for me
>
> Disadvantages
>
> IMHO, Parrot C code is a little ugly (i.e. mixed case and underscores :-C~ )
>
> NQP
>
> Advantages
>
> I'm very comfortable with Perl 5
> Inline PIR could prove useful
> Support for regular expressions
> Can use Rosella library
>
> Disadvantages
>
> Unfamiliar to me (but with Perl background, learning hasn't been too hard)
> Poorly documented
> Still a little quirky
>
> Winxed
>
> Advantages
>
> Fast
> Can use Rosella library
> Not included with Parrot
>
> Disadvantages
>
> Not crazy about JS-like syntax
> Unfamiliar to me
> Poorly documented
>
> My mentor, cotto, suggests Winxed. I initially never considered Winxed
> because I did not like the JS-like syntax. Trying to keep an open mind and
> looking around at some Winxed source code, I'm starting to come around to it
> a little more and see why nearly everybody always has something good to say
> about it. One of the biggest disadvantages of using it, however, is that
> Winxed is not packaged with Parrot by default meaning that anyone wishing to
> build the debugger would need Winxed installed. I really want to avoid
> dependencies. However, dukeleto suggested a neat solution: include the
> PIR-generated code with Parrot.
>
> What do you guys think?
>
> _______________________________________________
> http://lists.parrot.org/mailman/listinfo/parrot-dev
>
>


More information about the parrot-dev mailing list