Who is the keeper of the FAQ? This is gold.
--Josh ------- Forwarded Messages Date: Thu, 24 Jan 2002 12:35:05 -0800 From: "Brent Dax" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]>, <[EMAIL PROTECTED]> Subject: RE: How Powerful Is Parrot? [EMAIL PROTECTED]: # I've been watching the Parrot development with interest and have a few # questions about Parrots capabilities. # # Will Parrot support templates (also known as generics)? If you mean like C++ templates, then the answer is that it's up to the language. There won't be anything in Parrot that will prevent it. # Will Parrot support operator overloading? Yup, that's what vtables are all about. At the Parrot level, you just overlaod the 'add' vtable entry (and its variants) to implement +; at the language level you do whatever you want. # Do Parrot classes have constructors and destructors? Yes. # Does Parrot have garbage collection? Not yet, but it will. # When a Parrot class is garbage collected or otherwise # destroyed, is its # destructor executed? If so, when? In other words, is # object destruction # 100% deterministic in Parrot? Depends on the language, but Parrot will support deterministic destruction. # Does Parrot memory allocation support placement? In other # words, can I # supply a Parrot memory allocation routine with the address # of a variable # and the desired size to allocate and expect Parrot to # allocate a block # of the given size starting at the address I provided? Dunno, that's not my department. # How hard would it be to implement memory pools of objects # in Parrot? ..... # Does Parrot support threads? Not yet, but it will. # Does Parrot support exceptions? Not yet, but it will. # Can I invoke routines written in other languages, such as # C or C++, from # Parrot? Yes--you'll just have to write opcodes to wrap them. # Thanks in advance for your help. You're quite welcome. - --Brent Dax [EMAIL PROTECTED] Parrot Configure pumpking and regex hacker <obra> mmmm. hawt sysadmin chx0rs <lathos> This is sad. I know of *a* hawt sysamin chx0r. <obra> I know more than a few. <lathos> obra: There are two? Are you sure it's not the same one? ------- Message 2 Date: Thu, 24 Jan 2002 16:22:34 -0500 From: [EMAIL PROTECTED] To: [EMAIL PROTECTED] Subject: RE: How Powerful Is Parrot? Thanks Brent. # # Does Parrot have garbage collection? # Not yet, but it will. When it does, I'd ask that there be some sort of option on what type of garbage collection is used. This is because different methods of garbage collection have very different characteristics. For example, reference counting can't handle circular references and the garbage collector therefore leaks memory. Mark and Sweep is not 100% deterministic and there is no way to know when or if a garbage collected object will have it destructor executed. This is a big reason why Java has a "finally" keyword, so the programmer can execute code that would normally go in a destructor in a 100% deterministic language. I have a garbage collector written in C++ that handles circular references, is 100% deterministic, and is fast. When it comes time to implement garbage collection in Parrot, I'd be happy to provide the source if the Parrot community feels it'd be worthwhile. I currently own the copyright, but have no problem making it open source. Dave "Brent Dax" <brentdax@cpan To: <[EMAIL PROTECTED]>, <per [EMAIL PROTECTED]> .org> cc: Subject: RE: How Powerful Is Parro t? 01/24/02 03:35 PM [EMAIL PROTECTED]: # I've been watching the Parrot development with interest and have a few # questions about Parrots capabilities. # # Will Parrot support templates (also known as generics)? If you mean like C++ templates, then the answer is that it's up to the language. There won't be anything in Parrot that will prevent it. # Will Parrot support operator overloading? Yup, that's what vtables are all about. At the Parrot level, you just overlaod the 'add' vtable entry (and its variants) to implement +; at the language level you do whatever you want. # Do Parrot classes have constructors and destructors? Yes. # Does Parrot have garbage collection? Not yet, but it will. # When a Parrot class is garbage collected or otherwise # destroyed, is its # destructor executed? If so, when? In other words, is # object destruction # 100% deterministic in Parrot? Depends on the language, but Parrot will support deterministic destruction. # Does Parrot memory allocation support placement? In other # words, can I # supply a Parrot memory allocation routine with the address # of a variable # and the desired size to allocate and expect Parrot to # allocate a block # of the given size starting at the address I provided? Dunno, that's not my department. # How hard would it be to implement memory pools of objects # in Parrot? ...... # Does Parrot support threads? Not yet, but it will. # Does Parrot support exceptions? Not yet, but it will. # Can I invoke routines written in other languages, such as # C or C++, from # Parrot? Yes--you'll just have to write opcodes to wrap them. # Thanks in advance for your help. You're quite welcome. - --Brent Dax [EMAIL PROTECTED] Parrot Configure pumpking and regex hacker <obra> mmmm. hawt sysadmin chx0rs <lathos> This is sad. I know of *a* hawt sysamin chx0r. <obra> I know more than a few. <lathos> obra: There are two? Are you sure it's not the same one? ------- Message 3 Date: Thu, 24 Jan 2002 16:52:59 -0500 From: Dan Sugalski <[EMAIL PROTECTED]> To: [EMAIL PROTECTED], [EMAIL PROTECTED] Subject: Re: How Powerful Is Parrot? [Brent's answered some of these already, but I'll fill in the blanks. Also some of the answers presume a fully-implemented engine, which we don't have yet] At 2:52 PM -0500 1/24/02, [EMAIL PROTECTED] wrote: >I've been watching the Parrot development with interest and have a few >questions about Parrots capabilities. > > Will Parrot support templates (also known as generics)? That's a language issue, and we're a step below that. > Will Parrot support operator overloading? Absolutely. > Do Parrot classes have constructors and destructors? Yup, though generally it's at a level below your language of choice. (Which would, presumably, use the hooks to do appropriate things) > Does Parrot have garbage collection? Will, yup. GC's either going to be some form of compacting collector or a M&S system. No refcounts. > When a Parrot class is garbage collected or otherwise destroyed, is its > destructor executed? If so, when? In other words, is object destruction > 100% deterministic in Parrot? Object destruction is not 100% deterministic by default. You can, however, explicitly trigger a dead object detection sweep as you see fit, depending on the needs of the language. We don't guarantee behavior in cross-language situations. At some point things will be destroyed, of course. > Does Parrot memory allocation support placement? In other words, can I > supply a Parrot memory allocation routine with the address of a variable > and the desired size to allocate and expect Parrot to allocate a block > of the given size starting at the address I provided? No, though it's always a dodgy thing to guarantee that a block of X bytes can be allocated at location Y. (How do you know that there's enough free space?) You can, however, construct a variable using a pre-allocated block of memory and tell parrot to use it for your string or whatever. You also have control over whether a variable's memory should be touched by the GC system or not. > How hard would it be to implement memory pools of objects in Parrot? That's what we're going to have as soon as it gets implemented. PMCs are coming from memory arenas, as it makes dead object detection a lot easier. > Does Parrot support threads? Yup. > Does Parrot support exceptions? Yup. > Can I invoke routines written in other languages, such as C or C++, from > Parrot? Absolutely. - -- Dan - --------------------------------------"it's like this"------------------- Dan Sugalski even samurai [EMAIL PROTECTED] have teddy bears and even teddy bears get drunk ------- Message 4 Date: Thu, 24 Jan 2002 19:16:08 -0500 From: "Bryan C. Warnock" <[EMAIL PROTECTED]> To: [EMAIL PROTECTED], [EMAIL PROTECTED] Subject: Re: How Powerful Is Parrot? On Thursday 24 January 2002 14:52, [EMAIL PROTECTED] wrote: > I've been watching the Parrot development with interest and have a few > questions about Parrots capabilities. Brent and Dan have already answered, so I'm going to be so foolish as to answer, too. > Will Parrot support operator overloading? At both the language and internals level. The language level is overloading as is commonly thought of in OO - the treatment of an operator as a method call. The Parrot level overloading is the vtable mutation, and it isn't clear exactly how (and why) that will be done, but it will be done. (Since vtables *are*, in some sense, Parrot, it's not clear where to draw the line between an overloaded Foo and a brand new Bar, so it may end up not being overloading anyway.) > Do Parrot classes have constructors and destructors? Yes. > Does Parrot have garbage collection? Yes, it's been collecting a lot of garbage. But it will do some form of GC, too. > When a Parrot class is garbage collected or otherwise destroyed, is its > destructor executed? If so, when? In other words, is object destruction > 100% deterministic in Parrot? Destruction is deterministic at the language level, but not at Parrot's level. > Does Parrot memory allocation support placement? In other words, can I > supply a Parrot memory allocation routine with the address of a > variable and the desired size to allocate and expect Parrot to allocate a > block of the given size starting at the address I provided? Nope. We don't have nearly enough feet to shoot ourselves in for this. > How hard would it be to implement memory pools of objects in Parrot? Dunno. How hard? The rest are Dan's answers, verbatim. - -- Bryan C. Warnock [EMAIL PROTECTED] ------- End of Forwarded Messages