Running partcl on parrot [Was: Re: GCC failed with configure.pl]

Will Coleda will at coleda.com
Tue Jul 23 18:42:33 UTC 2013


FYI, I'm the partcl developer.

Some notes about the status of partcl on parrot:

https://github.com/partcl/partcl is the old, PIR based version - this
version was more complete, written in PIR & C, but it is not even being
tested regularly to insure that changes in parrot don't break it, as
previous breaking changes are still unresolved.

https://github.com/partcl/partcl-nqp is newer, and is targeting the nqp-rx
that ships with parrot, which is, so far as I know, no longer maintained -
a snapshot is bundled in with parrot.

partcl-nqp  has a branch, nqp2, which is in the middle of trying to target
the standalone nqp, which is being maintained. However, this is a work in
progress, and I'm not sure the branch even compiles at this point. The goal
is to 1) make this work with the new standalone NQP, and then to get this
version as functional as the PIR version once was. But it's not an actively
developed project.

So, it looks like you're using the first version... and yes, I can
reproduce your problem with my installed parrot (5.5.0-devel)

I haven't done a bisect, but it looks like this file (Tcl::Glob) was
installed as part of parrot's 5.0.0-devel branch, but isn't as of 5.5.0

So, partcl on PIR is extra broken until that's fixed, or you could try with
an older parrot version.

Apologies.

On Tue, Jul 23, 2013 at 2:18 PM, Ashraya <theemeraldsoul at gmail.com> wrote:

> One more thing.. I am trying to compile TCL code here too..
>
> But it doesn't seem to work :
>
> ashiva at ubuntu:~/Parrot/rakudo/partcl$ ../parrot/parrot tcl.pbc -e "puts
> {hello world}"
> "load_bytecode" couldn't find file 'Tcl/Glob.pir'
> current instr.: 'prepare_lib' pc 27748 (runtime/builtin/dict.pir:102)
> called from Sub '_main' pc 0 (src/tclsh.pir:39)
> called from Sub '_main' pc 3 (src/tclsh.pir:42)
> ashiva at ubuntu:~/Parrot/rakudo/partcl$
>
>
> I read in a conversation thread that this is working.. But I am not able
> to understand where I am going wrong.
>
> Please help.
>
> Thanks a lot,
> Ashraya
>
> Thanks & Regards,*
> Ashraya S Shiva*
>
>
> On Tue, Jul 23, 2013 at 9:54 PM, Will Coleda <will at coleda.com> wrote:
>
>> It sounds like you're trying to compile C code with parrot - Parrot is a
>> compiler for the languages PIR and PASM, and provides an interpreter to run
>> PBC (parrot bytecode).
>>
>> You can compile C code that interoperates with parrot (using the
>> embed/extend interface), but you cannot use parrot to compile and run C
>> code by itself. For that, you'd use a tool like GCC.
>>
>>
>> On Tue, Jul 23, 2013 at 11:58 AM, Ashraya <theemeraldsoul at gmail.com>wrote:
>>
>>>
>>> Hello Duke,
>>>
>>> Let me rephrase my question.
>>>
>>> For example, I write a simple perl file, hello.pl :
>>> #!/usr/bin/perl
>>> print "Hello World"
>>>
>>> To compile this, I use :  parrot perl6.pbc hello.pl
>>>
>>> The output is : Hello World
>>>
>>> Similarly, if I have a C file, hello.c :
>>>
>>> #include<stdio.h>
>>>
>>> int main()
>>> {
>>>     printf("Hello World\n");
>>>     return 0;
>>> }
>>>
>>> How would I compile this to get the output?
>>>
>>> Note : I downloaded the c99 package for parrot from github but I could
>>> not get this installed.
>>>
>>> Thanks & Regards,*
>>> Ashraya S Shiva*
>>>
>>>
>>> On Tue, Jul 23, 2013 at 7:23 PM, Jonathan "Duke" Leto <jonathan at leto.net
>>> > wrote:
>>>
>>>> Howdy Ashraya,
>>>>
>>>> I believe nobody is answering you because they don't quite understand
>>>> what you mean.
>>>>
>>>> Could you ask your question another way, and give some more background
>>>> about what you are trying to do?
>>>>
>>>> Duke
>>>>
>>>> On Sun, Jul 21, 2013 at 10:51 PM, Ashraya <theemeraldsoul at gmail.com>
>>>> wrote:
>>>> > A gentle reminder.. Please reply. How to convert a C code into PIR
>>>> code ?
>>>> >
>>>> > Thanks & Regards,
>>>> > Ashraya S Shiva
>>>> >
>>>> >
>>>> > On Wed, Jul 17, 2013 at 4:30 PM, Ashraya <theemeraldsoul at gmail.com>
>>>> wrote:
>>>> >>
>>>> >> Hello Duke,
>>>> >>
>>>> >> I am trying one of the examples in the .pod you have given :
>>>> >>
>>>> >>   /* foo.c */
>>>> >>
>>>> >>   /* specify the function prototype */
>>>> >>   #ifdef __WIN32
>>>> >>   __declspec(dllexport) void foo(void);
>>>> >>   #else
>>>> >>   void foo(void);
>>>> >>   #endif
>>>> >>
>>>> >>   void foo(void) {
>>>> >>     printf("Hello Parrot!\n");
>>>> >>   }
>>>> >>
>>>> >> Then, after having compiled the file as a shared library, the PIR
>>>> code
>>>> >> looks like this:
>>>> >>
>>>> >>
>>>> >> Here, how do I compile the .c file to produce a .pir file ??
>>>> >>
>>>> >> Thanks,
>>>> >> Ashiva
>>>> >>
>>>> >> Thanks & Regards,
>>>> >> Ashraya S Shiva
>>>> >>
>>>> >>
>>>> >> On Wed, Jul 17, 2013 at 2:08 AM, Jonathan "Duke" Leto <
>>>> jonathan at leto.net>
>>>> >> wrote:
>>>> >>>
>>>> >>> Howdy,
>>>> >>>
>>>> >>> You can embed Parrot inside of a C or C++ application. It can be any
>>>> >>> language, actually (it works with FORTRAN), but we have the best
>>>> docs
>>>> >>> for C and C++. I have embedded Parrot inside of PostgreSQL
>>>> (PL/Parrot
>>>> >>> [0]), but that uses the old interface [1]. The new interface [2] is
>>>> >>> infinitely better, but has not been heavily used. But it was
>>>> designed
>>>> >>> very well by Whiteknight, so it is high quality.
>>>> >>>
>>>> >>> You can also call out to C/C++ libraries from parrot via "dlopen"
>>>> and
>>>> >>> cousins via the Native Call Interface (NCI) substem of Parrot [3].
>>>> >>>
>>>> >>> Which of those things do you want to do, or possibly both?
>>>> >>>
>>>> >>> Duke
>>>> >>>
>>>> >>> [0] http://pl.parrot.org
>>>> >>> [1] https://github.com/parrot/parrot/blob/master/docs/embed.pod
>>>> >>> [2] https://github.com/parrot/parrot/blob/master/docs/embed_new.pod
>>>> >>> [3]
>>>> >>>
>>>> https://github.com/parrot/parrot/blob/master/docs/pdds/draft/pdd16_native_call.pod
>>>> >>>
>>>> >>>
>>>> >>> On Tue, Jul 16, 2013 at 4:58 AM, Ashraya S <
>>>> theemeraldsoul at gmail.com>
>>>> >>> wrote:
>>>> >>> > Hello All,
>>>> >>> >
>>>> >>> > I switched to my favorite Ubuntu and parrot got installed like a
>>>> charm.
>>>> >>> >
>>>> >>> > However, I would like to know how parrot supports C program
>>>> >>> > compilation.
>>>> >>> > Is there any tutorial I can find ? I did not get much support for
>>>> C in
>>>> >>> > google. Got loads for perl and pasm.
>>>> >>> >
>>>> >>> > Please advise.
>>>> >>> >
>>>> >>> > Thanks,
>>>> >>> > Ashiva
>>>> >>> >
>>>> >>> >
>>>> >>> > On Wednesday, July 10, 2013 7:30:29 PM UTC+5:30, Coke wrote:
>>>> >>> >>
>>>> >>> >> Do you have a C compiler installed?
>>>> >>> >>
>>>> >>> >>
>>>> >>> >> On Wed, Jul 10, 2013 at 6:39 AM, Ashraya S <theemer... at gmail.com
>>>> >
>>>> >>> >> wrote:
>>>> >>> >>>
>>>> >>> >>> Hi All,
>>>> >>> >>>
>>>> >>> >>> I am new to parrot and i am trying to install this in windows 7.
>>>> >>> >>> I have installed perl and minGW and have added these to my PATH
>>>> as
>>>> >>> >>> well.
>>>> >>> >>>
>>>> >>> >>> But i get the following error :
>>>> >>> >>>
>>>> >>> >>> C:\Users\ashiva\Documents\GitHub\parrot>perl Configure.pl
>>>> >>> >>> Parrot Version 5.5.0 Configure 2.0
>>>> >>> >>> Copyright (C) 2001-2013, Parrot Foundation.
>>>> >>> >>>
>>>> >>> >>> Hello, I'm Configure. My job is to poke and prod your system to
>>>> >>> >>> figure
>>>> >>> >>> out
>>>> >>> >>> how to build Parrot. The process is completely automated,
>>>> unless you
>>>> >>> >>> passed in
>>>> >>> >>> the `--ask' flag on the command line, in which case I'll prompt
>>>> you
>>>> >>> >>> for a
>>>> >>> >>> few
>>>> >>> >>> pieces of info.
>>>> >>> >>>
>>>> >>> >>> Since you're running this program, you obviously have Perl
>>>> 5--I'll be
>>>> >>> >>> pulling
>>>> >>> >>> some defaults from its configuration.
>>>> >>> >>>
>>>> >>> >>> init::manifest -      Check
>>>> >>> >>> MANIFEST.....................................done.
>>>> >>> >>> init::defaults -      Set Configure's default
>>>> >>> >>> values.....................done.
>>>> >>> >>> init::install -       Set up installation
>>>> >>> >>> paths..........................done.
>>>> >>> >>> init::hints -         Load platform and local hints
>>>> >>> >>> files................done.
>>>> >>> >>> inter::progs -        Determine what C compiler and linker to
>>>> >>> >>> use...Compilation
>>>> >>> >>> failed with 'gcc'
>>>> >>> >>>
>>>> >>> >>> C:\Users\ashiva\Documents\GitHub\parrot>
>>>> >>> >>>
>>>> >>> >>> Please help me resolve this problem.
>>>> >>> >>>
>>>> >>> >>> Thanks a lot, in advance.
>>>> >>> >>>
>>>> >>> >>> --
>>>> >>> >>> Ashiva
>>>> >>> >>>
>>>> >>> >>> _______________________________________________
>>>> >>> >>> http://lists.parrot.org/mailman/listinfo/parrot-dev
>>>> >>> >>>
>>>> >>> >>
>>>> >>> >>
>>>> >>> >>
>>>> >>> >> --
>>>> >>> >> Will "Coke" Coleda
>>>> >>> >
>>>> >>> >
>>>> >>> > _______________________________________________
>>>> >>> > http://lists.parrot.org/mailman/listinfo/parrot-dev
>>>> >>> >
>>>> >>>
>>>> >>>
>>>> >>>
>>>> >>> --
>>>> >>> Jonathan "Duke" Leto <jonathan at leto.net>
>>>> >>> Leto Labs LLC http://letolabs.com
>>>> >>> 209.691.DUKE http://duke.leto.net
>>>> >>> @dukeleto
>>>> >>
>>>> >>
>>>> >
>>>>
>>>>
>>>>
>>>> --
>>>> Jonathan "Duke" Leto <jonathan at leto.net>
>>>> Leto Labs LLC http://letolabs.com
>>>> 209.691.DUKE http://duke.leto.net
>>>> @dukeleto
>>>>
>>>
>>>
>>> _______________________________________________
>>> http://lists.parrot.org/mailman/listinfo/parrot-dev
>>>
>>>
>>
>>
>> --
>> Will "Coke" Coleda
>>
>
>


-- 
Will "Coke" Coleda
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.parrot.org/pipermail/parrot-dev/attachments/20130723/14596b8a/attachment-0001.html>


More information about the parrot-dev mailing list