Hello All, I was successfully able to embed parrot APIs in C and execute the same. Thanks a lot for your support. :)
I need another favour. I want to understand the workflow of how a C or perl etc. file gets converted into the parse tree, past, post and pir. I want to know in depth, how this is done. Can you please point me to the right docs for this ? Thanks & Regards, Ashiva Thanks & Regards,* Ashraya S Shiva* On Fri, Jul 26, 2013 at 10:02 AM, Ashraya <theemeralds...@gmail.com> wrote: > A gentle reminder.. Can anyone please help me here ? I am not able to > execute the generated .pir file. > > ashiva@ubuntu:~/EScript$ ./installable_escript Test/hello.es > Hello World! > > ashiva@ubuntu:~/EScript$ > ashiva@ubuntu:~/EScript$ ./installable_escript --target=pir Test/hello.es > > .HLL "escript" > > .namespace [] > .sub "_block1000" :anon :subid("10_1374761960.96533") > .annotate 'file', "Test/hello.es" > .annotate 'line', 1 > $P100 = "say"("Hello World!\n") > .return ($P100) > .end > > ashiva@ubuntu:~/EScript$ ./installable_escript --target=pir Test/hello.es> > Test/hello.pir > ashiva@ubuntu:~/EScript$ > ashiva@ubuntu:~/EScript$ > ashiva@ubuntu:~/EScript$ parrot Test/hello.pir > Could not find sub say > current instr.: '_block1000' pc 6 (Test/hello.pir:8) (Test/hello.es:1) > ashiva@ubuntu:~/EScript$ > > Thanks & Regards, > Ashiva > > Thanks & Regards,* > Ashraya S Shiva* > > > On Thu, Jul 25, 2013 at 7:59 PM, Ashraya <theemeralds...@gmail.com> wrote: > >> Hi All, >> >> Apart from the problem in compiling my factorial program, I tried to >> create a new language using the my_language_shell.pl given in PCT >> documentation. >> I followed the steps and created the skeleton for my language : EScript. >> >> When I tried printing "Hello World!", it printed properly. >> >> I tried generating the parse, past, post trees and it was all generated. >> I even generated the .pir file for my hello.es >> >> Here is the snapshot : >> >> ashiva@ubuntu:~/EScript$ ./installable_escript Test/hello.es >> Hello World! >> >> ashiva@ubuntu:~/EScript$ >> >> However, if I try to execute the generated pir file, it throws an error : >> >> ashiva@ubuntu:~/EScript$ ./installable_escript --target=pir Test/hello.es >> >> .HLL "escript" >> >> .namespace [] >> .sub "_block1000" :anon :subid("10_1374761960.96533") >> .annotate 'file', "Test/hello.es" >> .annotate 'line', 1 >> $P100 = "say"("Hello World!\n") >> .return ($P100) >> .end >> >> ashiva@ubuntu:~/EScript$ ./installable_escript --target=pir Test/hello.es> >> Test/hello.pir >> ashiva@ubuntu:~/EScript$ >> ashiva@ubuntu:~/EScript$ >> ashiva@ubuntu:~/EScript$ parrot Test/hello.pir >> Could not find sub say >> current instr.: '_block1000' pc 6 (Test/hello.pir:8) (Test/hello.es:1) >> ashiva@ubuntu:~/EScript$ >> >> >> Can anyone please tell me what's wrong in my steps ? >> >> Please help. >> >> Thanks a lot, in advance. >> >> With Best Regards, >> Ashiva >> >> Thanks & Regards,* >> Ashraya S Shiva* >> >> >> On Wed, Jul 24, 2013 at 5:38 PM, Ashraya <theemeralds...@gmail.com>wrote: >> >>> 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 <theemeralds...@gmail.com>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 <w...@coleda.com> 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 <theemeralds...@gmail.com>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 <w...@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 >>>>>>> <theemeralds...@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 < >>>>>>>> jonat...@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 < >>>>>>>>> theemeralds...@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 < >>>>>>>>> theemeralds...@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 < >>>>>>>>> jonat...@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 < >>>>>>>>> theemeralds...@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...@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 <jonat...@leto.net> >>>>>>>>> >>> Leto Labs LLC http://letolabs.com >>>>>>>>> >>> 209.691.DUKE http://duke.leto.net >>>>>>>>> >>> @dukeleto >>>>>>>>> >> >>>>>>>>> >> >>>>>>>>> > >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Jonathan "Duke" Leto <jonat...@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 >>>>> >>>> >>>> >>> >> >
_______________________________________________ http://lists.parrot.org/mailman/listinfo/parrot-dev