Hi, It's not that easy to contribute to parrot development. I got into that by picking a TODO task about *BooleanArrays, that seemed appropriate for a Parrot newbie that knows a bit about algorithmics and Data structures.
Answering one of my mail, Bernhard raised the question of using a common implementation for strings, boolean arrays. And that maybe this implementation could be borrowed from the Perl5 Bit::Vector library. It reminded me of something I read on this list, about the GMP library. So I checked the GMP website, ok looks great. I've also noted that there are some GMP-based implementations and GMP stuff in Parrot, and a GMP test. But a priori not a word in the specifications and the design documents. So I tried to track all the GMP related threads, and that's not that easy, for instance there does not seem to be a "search" feature on the nntp archive. I tried using some news readers then found my happiness with Google Groups (always Google). But there's also some materials in the blogs for example. So what did I found, among other stuff ? in Joshua Gatcomb mail, 2004-07-31
The "make ICU optional" was supposed to read "make ICU like GMP" - autodetect it if present, but do not force it upon the user.
in the Perl 6 Summary for the week ending 2004-07-18:
GMP Licensing Armin Obersteiner reported his investigations into the licensing requirements of the GMP maths library. It appears that the FSF's 'GPL
Compliance Engineer' reckons we won't need to include the GMP's
source
code with binary distributions. We just have to make it available
from
the same source as the distribution. Which is handy.
A thread "GMP's license looks Parrot-compatible" starting on 2004-06-30 SO MY POINT IS: 1) it seems that a decision has been made, but that it not written anywhere, and at least not on the parrot site. This decision is, in my understanding, to use an internal fall-back poor man's implementation. 2) Nor could I find the rationale for that decision. I've read some IMHO good arguments for including or for linking, but not a definitive summary, because from the last stuff I read, it seems that the Licensing issues are not blocking 3) I spent more time trying to figure out the right thing to do than in my opinion coding something useful. WHAT I'D LIKE: * Some place, in the docs/ part of the parrot website, where that kind of decision is recorded, along with pointers to relevant information. A kind of proceedings, or critical review, I'm not sure about the word in English. * The particular details for the GMP decision. AND YET OTHER QUESTIONS * What is the intended usage, or in other words, the usefulness of the *BooleanArrays ? I'm somewhat puzzled, because there is no API for using these boolean arrays (a la Bit::Vector for example) * If it's just a kind of storage, I can go on and implement it with a custom, simple and small implementation, but I've still 2 solutions for Resizables : - either grow smartly only on the right (push, pop), an alloc/copy when changes are needed on the left (that saves on INTVAL attribute) - allocate a third INTVAL attribute on the heap, and grows smartly in both directions Thank you very much for your attention Karl Forner