Hi All, I am trying to run a simple factorial program using parrot inside my C code.
This is from the embed_new.pod tutorial. This line in the main function seems to be giving me some errors : Parrot_api_load_bytecode_file(interp, "foo.pbc", &pf) ashiva@ubuntu:~/Parrot/rakudo/Test$ gcc factorial.c `parrot_config embed-cflags` `parrot_config embed-ldflags` factorial.c: In function ‘main’: factorial.c:65:5: warning: passing argument 2 of ‘Parrot_api_load_bytecode_file’ from incompatible pointer type [enabled by default] In file included from factorial.c:2:0: ../parrot/include/parrot/api.h:324:12: note: expected ‘Parrot_String’ but argument is of type ‘char *’ ashiva@ubuntu:~/Parrot/rakudo/Test$ Can anyone please suggest what I can possibly do to avoid these errors and run the pbc ? Thanks & Regards, Ashraya Thanks & Regards,* Ashraya S Shiva* On Wed, Jul 24, 2013 at 12:23 AM, Ashraya <[email protected]> wrote: > Oh ok.. Thanks for the clarification, Will. > > Thank you all, for your patience. :) > > Thanks & Regards,* > Ashraya S Shiva* > > > On Wed, Jul 24, 2013 at 12:12 AM, Will Coleda <[email protected]> wrote: > >> 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 <[email protected]>wrote: >> >>> One more thing.. I am trying to compile TCL code here too.. >>> >>> But it doesn't seem to work : >>> >>> ashiva@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@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 <[email protected]> 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 <[email protected]>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 < >>>>> [email protected]> 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 <[email protected]> >>>>>> 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 <[email protected]> >>>>>> 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 < >>>>>> [email protected]> >>>>>> >> 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 < >>>>>> [email protected]> >>>>>> >>> 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 < >>>>>> [email protected]> >>>>>> >>> >> 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 <[email protected]> >>>>>> >>> Leto Labs LLC http://letolabs.com >>>>>> >>> 209.691.DUKE http://duke.leto.net >>>>>> >>> @dukeleto >>>>>> >> >>>>>> >> >>>>>> > >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Jonathan "Duke" Leto <[email protected]> >>>>>> 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 >> > >
_______________________________________________ http://lists.parrot.org/mailman/listinfo/parrot-dev
