Seems the guidance about NQP for the toolchain that Bruce Gray asked for has sparked responses to a wider debate.

It is clear that the toolchain needed for parrot needs to be written in an HLL for the very reasons that HLLs are better than low level languages in the first place.

So one question in this thread is which HLL should parrot adopt for its tool chain?

Some requirements for this toolchain HLL:
- it should provide access to all aspects of Parrot
- it should "belong" to the Parrot community so that when changes are made to Parrot, changes can be made in the HLL to keep consistency with the point above - it should only have sufficient constructs to achieve the tasks of creating the Parrot tool chain.
- it could be a model for other HLL developers to see how to do things.

It does not really matter which HLL is used, so it could be like an established one, or be completely new.

Seems to me that designing a new HLL would divert the resources of the Parrot community, so that would be a bad choice.

The toolchain HLL is therefore likely to mimic some other more established language. Whichever choice is made will rub a fan of another language the wrong way, so its unlikely that a choice can be made that everyone will like.

NQP was used to create the first tool chain. It has a codebase that can be modified. It already works. That it is a subset of Perl6 is a part of its history and the history of Parrot.

Maybe NQP should be renamed to something more Parrot-like, eg. para-tc?

A second question is the relationship between Rakudo and Parrot. They are different, though their histories are intimately linked. At some point the needs of the two language communities will diverge significantly. This is probably one such moment.

Rakudo needs a target that can have multiple back ends, Parrot needs an HLL for its tool kit. Up until now, NQP has served both needs. Maintaining NQP so that it continues both needs is no longer possible, which is effectively what the Rakudo developers have stated by publishing a new specification for NQP.

It seems to me that NQP should fork into two similar but different languages, one for Parrot's tool chain, and one for Rakudo's target. If they were called different things, it would keep the two contexts clear.

Richard <finanalyst>
_______________________________________________
http://lists.parrot.org/mailman/listinfo/parrot-dev

Reply via email to