Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re: Questions wanted for Pugs/Perl6

by stvn (Monsignor)
on Feb 21, 2005 at 21:07 UTC ( #433170=note: print w/replies, xml ) Need Help??


in reply to Questions wanted for Pugs/Perl6

Let me first start by saying I think what you have done is really really cool. And I look forward to playing with Pugs in the very near future. My questions are simple, and I mean absolutely no offense by them what-so-ever. But I feel that these are questions that are probably on many peoples minds and both should be asked and should be addressed by you.

  1. Why did you do this in Haskell and not in Parrott? In other words, why not contribute to the ongoing perl6 project, rather than doing something totally different?
  2. Do you think that any of the experience you have gained in coding this can be transfered over to the main perl 6 project? And do you plan on doing so? (They are looking for someone after all)

Again, I cannot stress enough that I mean no offense, and do not in anyway want to dismiss or play down your accomplishment. I would just like to know for my own curiostity, this is not meant to be a flame in any way at all.

-stvn

Replies are listed 'Best First'.
Re^2: Questions wanted for Pugs/Perl6
by duff (Parson) on Feb 22, 2005 at 04:31 UTC

    In answer to your question #2, I have to say that pugs has already contributed lots to Perl6. By implementing much of the things spec'd out in the various Apocalypses, Exegeses, and Synopses autrijus is "running ahead" of the Perl6 implementation effort and weeding out many edge cases and design faux pas. In this regard alone, pugs will make the Perl6 compiler implementation much, much easier. Also, it may be that if enough of Perl6 is implemented by pugs that it could be the bootstrap by which we get a full Perl6 compiler.

      I totally agree with your assessment. However, my question was more specifically was autrijus actually planning on sitting down with the current or future parrot/perl6 developers as well as Larry and Damian and really transfering all that accumulated knowledge.

      To be honest, from all the CPAN work I have seen of autrijus, and the commitment he seems to have to perl overall, if I had to guess, I would assume he absolutely would do this. So the question really isn't for me, but instead for those who are not already very familiar with Autrijus's work.

      -stvn

        If you hang out on freenode #perl6 or read perl6-language, you'll see that there's lots of knowledge transfer happening right this minute :-)

Re^2: Questions wanted for Pugs/Perl6
by BrowserUk (Patriarch) on Feb 22, 2005 at 07:20 UTC

    Without trying to speak for autrijus, could it be that his expertise lies in Haskell and and not C/make etc.

    It also strikes me that given the impressive pace of his amazing work on Pugs, that maybe using a language with built in memory management; sensible & powerful built-in datatypes; coherent, cross-platform libraries; allows him to concentrate on the details of the task at hand rather than futzing with malloc()/free() et al.

    C maybe the only game in town for the level of cross-platform support required by Parrot (though I think that there is another contender for that also), but for the Perl6 compiler--and certainly the first cut of it--is there any reason not to use Haskell?

    Especially given that:

    GHC compiles Haskell code either by using an intermediate C compiler (GCC), or by generating native code on some platforms.

    Which in my ignorance I take to mean that GHC, and therefore Haskell, and therefore Pugs should run anywhere GCC runs.

    If true, that would be a huge stepping stone. Especially if it is possible to intercept the generated C sources and compile and distribute them separately? I guess that there would dependancies upon some GHC libraries involved that might complicate that though?

    Even though generated sources can be a pain for humans to deal with, it might provide a starting point for a non-GHC dependant "native" build of the Perl6 compiler?


    Examine what is said, not who speaks.
    Silence betokens consent.
    Love the truth but pardon error.
      It also strikes me that given the impressive pace of his amazing work on Pugs, that maybe using a language with built in memory management; sensible & powerful built-in datatypes; coherent, cross-platform libraries; allows him to concentrate on the details of the task at hand rather than futzing with malloc()/free() et al

      Functional languages are also known to be well adept for parsing, and since parsing perl is considered to be difficult at best and impossible at worst (except for perl of course) and I expect perl6 is better (but still difficult), that using Haskell was much easier than doing C/Parrot.

      C maybe the only game in town for the level of cross-platform support required by Parrot (though I think that there is another contender for that also),

      What is the "other contender" other than C? (Not that I don't believe you, just curious)

      Even though generated sources can be a pain for humans to deal with, it might provide a starting point for a non-GHC dependant "native" build of the Perl6 compiler?

      Personally I was wondering (after skiming some of the Haskell code) that maybe it could be bootstrapped as the parser and emit Parrot code, rather than try to fiddle with any generated C. Personally, I think a Haskell based perl6 compiler which emits Parrot code would be really really really cool.

      -stvn
        What is the "other contender" other than C?

        Given it's immaturity and the learning curve it has, it wasn't a contender when Parrot was started, but I think that with the advent of a GCC backend running on Linux, Digital Mars D, shows considerable promise for future cross-platform projects.

        It has everything you need from C, low-level access to the hardware including inline assembler support, fast optimising compiler etc. It also has built-in memory management & garbage collection, objects, strings, hashes, types, contracts, templates, mixins, etc. etc. and can link directly to C code without requiring "wrappers". Or, all the good bits from C++ without the anachronisms or complexity.

        I was wondering ... that maybe it could be bootstrapped as the parser and emit Parrot code

        From what I've seen and understood, it almost certainly could produce Parrot code directly. The only downside of that is the 40 MB download of GHC.

        Then again, if it gets competent enough that it could be used to write the P6 compiler in P6, you could end up with it generating a P6 compiler that could compile itself?. Such things have been done before.


        Examine what is said, not who speaks.
        Silence betokens consent.
        Love the truth but pardon error.
Re^2: Questions wanted for Pugs/Perl6
by thor (Priest) on Feb 21, 2005 at 22:51 UTC
    So...just to be clear, you mean no offense? ;)

    thor

    Feel the white light, the light within
    Be your own disciple, fan the sparks of will
    For all of us waiting, your kingdom will come

Re^2: Questions wanted for Pugs/Perl6
by Smylers (Pilgrim) on Feb 22, 2005 at 09:35 UTC
    Do you think that any of the experience you have gained in coding this can be transfered over to the main perl 6 project? And do you plan on doing so? (They are looking for someone after all).

    That is not true: the Perl Foundation already have people in mind; what they are soliciting is money.

    Their proposal does mention "a second Parrot developer", but as Allison's comment on the page you linked to makes clear, that refers to a specific person who currently wishes to remain anonymous (because he doesn't yet want his current employer to learn of his plans to leave and work on Parrot) rather than a vacancy for a developer yet to be chosen.

    Smylers
      That is not true: the Perl Foundation already have people in mind; what they are soliciting is money.

      I only read/skimmed about 10 replies deep in that thread, so I didn't realize that :)

      -stvn

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://433170]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (7)
As of 2022-12-05 12:17 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?