Front page | perl.cvs.parrot |
Postings from December 2008
[svn:parrot] r34717 - trunk/ports/cygwin
From:
rurban
Date:
December 31, 2008 10:51
Subject:
[svn:parrot] r34717 - trunk/ports/cygwin
Message ID:
20081231185139.1FCE3CB9FA@x12.develooper.com
Author: rurban
Date: Wed Dec 31 10:51:37 2008
New Revision: 34717
Added:
trunk/ports/cygwin/parrot-0.8.2-1.cygport
trunk/ports/cygwin/parrot-0.8.2-1.cygwin.patch
trunk/ports/cygwin/parrot-0.8.2-1.src.patch
Removed:
trunk/ports/cygwin/parrot-0.7.1-1.cygport
trunk/ports/cygwin/parrot-0.7.1-1.cygwin.patch
trunk/ports/cygwin/parrot-0.7.1-1.src.patch
Modified:
trunk/ports/cygwin/README
Log:
[ports] cygwin release parrot-0.8.2-1
Modified: trunk/ports/cygwin/README
==============================================================================
--- trunk/ports/cygwin/README (original)
+++ trunk/ports/cygwin/README Wed Dec 31 10:51:37 2008
@@ -52,447 +52,15 @@
Files included in the =parrot= package:
+ /etc/postinstall/parrot.sh
+ /etc/preremove/parrot.sh
/usr/bin/parrot.exe
/usr/bin/parrot_config.exe
/usr/bin/parrot_debugger.exe
- /usr/bin/pbc_disassemble.exe
/usr/bin/pbc_info.exe
/usr/bin/pbc_merge.exe
+ /usr/bin/pbc_to_exe.exe
/usr/bin/pdump.exe
- /usr/share/doc/Cygwin/parrot-0.7.1.README
- /usr/share/doc/parrot-0.7.1/ChangeLog
- /usr/share/doc/parrot-0.7.1/CREDITS
- /usr/share/doc/parrot-0.7.1/docs/art/pp001-intro.pod
- /usr/share/doc/parrot-0.7.1/docs/art/pp002-pmc.pod
- /usr/share/doc/parrot-0.7.1/docs/art/pp003-oop.pod
- /usr/share/doc/parrot-0.7.1/docs/book/appendix.pod
- /usr/share/doc/parrot-0.7.1/docs/book/ch01_overview.pod
- /usr/share/doc/parrot-0.7.1/docs/book/ch02_getting_started.pod
- /usr/share/doc/parrot-0.7.1/docs/book/ch03_pir_basics.pod
- /usr/share/doc/parrot-0.7.1/docs/book/ch04_pir_subroutines.pod
- /usr/share/doc/parrot-0.7.1/docs/book/ch05_pasm.pod
- /usr/share/doc/parrot-0.7.1/docs/book/ch06_testing.pod
- /usr/share/doc/parrot-0.7.1/docs/book/ch07_architecture.pod
- /usr/share/doc/parrot-0.7.1/docs/book/ch08_pct.pod
- /usr/share/doc/parrot-0.7.1/docs/book/ch09_reference.pod
- /usr/share/doc/parrot-0.7.1/docs/book/figs/p6e_0801.png
- /usr/share/doc/parrot-0.7.1/docs/debugger.pod
- /usr/share/doc/parrot-0.7.1/docs/embed.pod
- /usr/share/doc/parrot-0.7.1/docs/extend.pod
- /usr/share/doc/parrot-0.7.1/docs/faq.pod
- /usr/share/doc/parrot-0.7.1/docs/gettingstarted.pod
- /usr/share/doc/parrot-0.7.1/docs/glossary.pod
- /usr/share/doc/parrot-0.7.1/docs/imcc/imcfaq.pod
- /usr/share/doc/parrot-0.7.1/docs/imcc/operation.pod
- /usr/share/doc/parrot-0.7.1/docs/imcc/README
- /usr/share/doc/parrot-0.7.1/docs/intro.pod
- /usr/share/doc/parrot-0.7.1/docs/jit.pod
- /usr/share/doc/parrot-0.7.1/docs/memory_internals.pod
- /usr/share/doc/parrot-0.7.1/docs/mmd.pod
- /usr/share/doc/parrot-0.7.1/docs/native_exec.pod
- /usr/share/doc/parrot-0.7.1/docs/ops/bit.pod
- /usr/share/doc/parrot-0.7.1/docs/ops/cmp.pod
- /usr/share/doc/parrot-0.7.1/docs/ops/core.pod
- /usr/share/doc/parrot-0.7.1/docs/ops/debug.pod
- /usr/share/doc/parrot-0.7.1/docs/ops/experimental.pod
- /usr/share/doc/parrot-0.7.1/docs/ops/io.pod
- /usr/share/doc/parrot-0.7.1/docs/ops/math.pod
- /usr/share/doc/parrot-0.7.1/docs/ops/object.pod
- /usr/share/doc/parrot-0.7.1/docs/ops/obscure.pod
- /usr/share/doc/parrot-0.7.1/docs/ops/pic.pod
- /usr/share/doc/parrot-0.7.1/docs/ops/pmc.pod
- /usr/share/doc/parrot-0.7.1/docs/ops/set.pod
- /usr/share/doc/parrot-0.7.1/docs/ops/string.pod
- /usr/share/doc/parrot-0.7.1/docs/ops/sys.pod
- /usr/share/doc/parrot-0.7.1/docs/ops/var.pod
- /usr/share/doc/parrot-0.7.1/docs/optable.pod
- /usr/share/doc/parrot-0.7.1/docs/overview.pod
- /usr/share/doc/parrot-0.7.1/docs/parrot.pod
- /usr/share/doc/parrot-0.7.1/docs/parrotbyte.pod
- /usr/share/doc/parrot-0.7.1/docs/parrothist.pod
- /usr/share/doc/parrot-0.7.1/docs/pct/gettingstarted.pod
- /usr/share/doc/parrot-0.7.1/docs/pct/past_building_blocks.pod
- /usr/share/doc/parrot-0.7.1/docs/pct/pct_optable_guide.pod
- /usr/share/doc/parrot-0.7.1/docs/pdds/draft/pdd01_overview.pod
- /usr/share/doc/parrot-0.7.1/docs/pdds/draft/pdd04_datatypes.pod
- /usr/share/doc/parrot-0.7.1/docs/pdds/draft/pdd05_opfunc.pod
- /usr/share/doc/parrot-0.7.1/docs/pdds/draft/pdd06_pasm.pod
- /usr/share/doc/parrot-0.7.1/docs/pdds/draft/pdd08_keys.pod
- /usr/share/doc/parrot-0.7.1/docs/pdds/draft/pdd10_embedding.pod
- /usr/share/doc/parrot-0.7.1/docs/pdds/draft/pdd11_extending.pod
- /usr/share/doc/parrot-0.7.1/docs/pdds/draft/pdd14_bignum.pod
- /usr/share/doc/parrot-0.7.1/docs/pdds/draft/pdd16_native_call.pod
- /usr/share/doc/parrot-0.7.1/docs/pdds/draft/pdd29_compiler_tools.pod
- /usr/share/doc/parrot-0.7.1/docs/pdds/draft/pdd30_install.pod
- /usr/share/doc/parrot-0.7.1/docs/pdds/draft/pdd31_hll_interop.pod
- /usr/share/doc/parrot-0.7.1/docs/pdds/pdd00_pdd.pod
- /usr/share/doc/parrot-0.7.1/docs/pdds/pdd03_calling_conventions.pod
- /usr/share/doc/parrot-0.7.1/docs/pdds/pdd07_codingstd.pod
- /usr/share/doc/parrot-0.7.1/docs/pdds/pdd09_gc.pod
- /usr/share/doc/parrot-0.7.1/docs/pdds/pdd13_bytecode.pod
- /usr/share/doc/parrot-0.7.1/docs/pdds/pdd15_objects.pod
- /usr/share/doc/parrot-0.7.1/docs/pdds/pdd15_object_metamodel.png
- /usr/share/doc/parrot-0.7.1/docs/pdds/pdd15_object_metamodel.svg
- /usr/share/doc/parrot-0.7.1/docs/pdds/pdd17_pmc.pod
- /usr/share/doc/parrot-0.7.1/docs/pdds/pdd18_security.pod
- /usr/share/doc/parrot-0.7.1/docs/pdds/pdd19_pir.pod
- /usr/share/doc/parrot-0.7.1/docs/pdds/pdd20_lexical_vars.pod
- /usr/share/doc/parrot-0.7.1/docs/pdds/pdd21_namespaces.pod
- /usr/share/doc/parrot-0.7.1/docs/pdds/pdd22_io.pod
- /usr/share/doc/parrot-0.7.1/docs/pdds/pdd23_exceptions.pod
- /usr/share/doc/parrot-0.7.1/docs/pdds/pdd24_events.pod
- /usr/share/doc/parrot-0.7.1/docs/pdds/pdd25_concurrency.pod
- /usr/share/doc/parrot-0.7.1/docs/pdds/pdd26_ast.pod
- /usr/share/doc/parrot-0.7.1/docs/pdds/pdd27_multiple_dispatch.pod
- /usr/share/doc/parrot-0.7.1/docs/pdds/pdd28_strings.pod
- /usr/share/doc/parrot-0.7.1/docs/pdds/pdd_template.pod
- /usr/share/doc/parrot-0.7.1/docs/pdds/README
- /usr/share/doc/parrot-0.7.1/docs/pmc/array.pod
- /usr/share/doc/parrot-0.7.1/docs/pmc/documentation.pod
- /usr/share/doc/parrot-0.7.1/docs/pmc/struct.pod
- /usr/share/doc/parrot-0.7.1/docs/pmc/subs.pod
- /usr/share/doc/parrot-0.7.1/docs/pmc.pod
- /usr/share/doc/parrot-0.7.1/docs/pmc2c.pod
- /usr/share/doc/parrot-0.7.1/docs/porting_intro.pod
- /usr/share/doc/parrot-0.7.1/docs/req/model_users.pod
- /usr/share/doc/parrot-0.7.1/docs/resources/favicon.ico
- /usr/share/doc/parrot-0.7.1/docs/resources/parrot_small.png
- /usr/share/doc/parrot-0.7.1/docs/resources/perl.css
- /usr/share/doc/parrot-0.7.1/docs/resources/up.gif
- /usr/share/doc/parrot-0.7.1/docs/running.pod
- /usr/share/doc/parrot-0.7.1/docs/stability.pod
- /usr/share/doc/parrot-0.7.1/docs/stm/atomic.pod
- /usr/share/doc/parrot-0.7.1/docs/stm/howto.pod
- /usr/share/doc/parrot-0.7.1/docs/stm/internals.pod
- /usr/share/doc/parrot-0.7.1/docs/stm/stm_frontend.pod
- /usr/share/doc/parrot-0.7.1/docs/stm/thread-issues.pod
- /usr/share/doc/parrot-0.7.1/docs/submissions.pod
- /usr/share/doc/parrot-0.7.1/docs/tests.pod
- /usr/share/doc/parrot-0.7.1/docs/vtables.pod
- /usr/share/doc/parrot-0.7.1/DONORS.pod
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/addit.pasm
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/addit.pir
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/addit.pl
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/addit.rb
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/addit2.pir
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/array_access.pir
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/arriter.pir
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/arriter.pl
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/arriter.rb
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/arriter_o1.pir
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/bench_newp.pasm
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/fib.pir
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/fib.pl
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/fib.py
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/fib.rb
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/float4.pir
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/freeze.pasm
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/freeze.pl
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/gc_alloc_new.pasm
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/gc_alloc_reuse.pasm
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/gc_generations.pasm
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/gc_header_new.pasm
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/gc_header_reuse.pasm
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/gc_waves_headers.pasm
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/gc_waves_sizeable_data.pasm
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/gc_waves_sizeable_headers.pasm
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/mops.pasm
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/mops.pl
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/mops_intval.pasm
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/oo1.pasm
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/oo1.pl
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/oo1.py
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/oo1.rb
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/oo2.pasm
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/oo2.pl
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/oo2.py
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/oo2.rb
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/oo3.pasm
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/oo3.pl
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/oo3.py
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/oo3.rb
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/oo4.pasm
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/oo4.pl
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/oo4.py
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/oo4.rb
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/oo5.pir
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/oo5.pl
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/oo5.py
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/oo5.rb
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/oo6.pir
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/oo6.pl
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/oo6.py
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/oo6.rb
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/oofib.pir
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/oofib.pl
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/oofib.py
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/oofib.rb
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/oon.txt
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/overload.pir
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/overload.pl
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/primes.c
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/primes.pasm
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/primes.pl
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/primes2.c
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/primes2.pir
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/primes2.pl
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/primes2.py
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/primes2.rb
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/primes2_i.pir
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/primes_i.pasm
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/shared_ref.pasm
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/shared_ref.pl
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/stress.pasm
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/stress.pl
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/stress.rb
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/stress1.pasm
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/stress1.pl
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/stress2.pasm
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/stress2.pl
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/stress2.rb
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/stress3.pasm
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/vpm.pir
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/vpm.pl
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/vpm.py
- /usr/share/doc/parrot-0.7.1/examples/benchmarks/vpm.rb
- /usr/share/doc/parrot-0.7.1/examples/c/nanoparrot.c
- /usr/share/doc/parrot-0.7.1/examples/c/test_main.c
- /usr/share/doc/parrot-0.7.1/examples/compilers/japhc.c
- /usr/share/doc/parrot-0.7.1/examples/compilers/Makefile
- /usr/share/doc/parrot-0.7.1/examples/io/async_select.pir
- /usr/share/doc/parrot-0.7.1/examples/io/echo_client.pir
- /usr/share/doc/parrot-0.7.1/examples/io/http.pir
- /usr/share/doc/parrot-0.7.1/examples/io/httpd.pir
- /usr/share/doc/parrot-0.7.1/examples/io/httpd2.pir
- /usr/share/doc/parrot-0.7.1/examples/io/net_smtp.pasm
- /usr/share/doc/parrot-0.7.1/examples/io/pioctl.pasm
- /usr/share/doc/parrot-0.7.1/examples/io/pipe2.pir
- /usr/share/doc/parrot-0.7.1/examples/io/pipe3.pir
- /usr/share/doc/parrot-0.7.1/examples/japh/japh1.pasm
- /usr/share/doc/parrot-0.7.1/examples/japh/japh2.pasm
- /usr/share/doc/parrot-0.7.1/examples/japh/japh3.pasm
- /usr/share/doc/parrot-0.7.1/examples/japh/japh4.pasm
- /usr/share/doc/parrot-0.7.1/examples/japh/japh5.pasm
- /usr/share/doc/parrot-0.7.1/examples/japh/README
- /usr/share/doc/parrot-0.7.1/examples/library/acorn.l
- /usr/share/doc/parrot-0.7.1/examples/library/getopt_demo.pir
- /usr/share/doc/parrot-0.7.1/examples/library/md5sum.pir
- /usr/share/doc/parrot-0.7.1/examples/library/ncurses_life.pir
- /usr/share/doc/parrot-0.7.1/examples/library/pcre.pir
- /usr/share/doc/parrot-0.7.1/examples/mops/mops.c
- /usr/share/doc/parrot-0.7.1/examples/mops/mops.cs
- /usr/share/doc/parrot-0.7.1/examples/mops/mops.il
- /usr/share/doc/parrot-0.7.1/examples/mops/mops.p6
- /usr/share/doc/parrot-0.7.1/examples/mops/mops.pl
- /usr/share/doc/parrot-0.7.1/examples/mops/mops.ps
- /usr/share/doc/parrot-0.7.1/examples/mops/mops.py
- /usr/share/doc/parrot-0.7.1/examples/mops/mops.rb
- /usr/share/doc/parrot-0.7.1/examples/mops/mops.scheme
- /usr/share/doc/parrot-0.7.1/examples/mops/README
- /usr/share/doc/parrot-0.7.1/examples/namespace/namespace_dump.pir
- /usr/share/doc/parrot-0.7.1/examples/nci/ls.pir
- /usr/share/doc/parrot-0.7.1/examples/nci/Mysql.pir
- /usr/share/doc/parrot-0.7.1/examples/nci/mysqltest.p6
- /usr/share/doc/parrot-0.7.1/examples/nci/mysqltest.pir
- /usr/share/doc/parrot-0.7.1/examples/nci/PQt.C
- /usr/share/doc/parrot-0.7.1/examples/nci/QtHelloWorld.pasm
- /usr/share/doc/parrot-0.7.1/examples/nci/sdl_blue_rectangle.pir
- /usr/share/doc/parrot-0.7.1/examples/nci/win32api.pir
- /usr/share/doc/parrot-0.7.1/examples/nci/Xlib.pir
- /usr/share/doc/parrot-0.7.1/examples/nci/Xlibconstants.pir
- /usr/share/doc/parrot-0.7.1/examples/nci/xlibtest.nqp
- /usr/share/doc/parrot-0.7.1/examples/nci/xlibtest.p6
- /usr/share/doc/parrot-0.7.1/examples/nci/xlibtest.pir
- /usr/share/doc/parrot-0.7.1/examples/opengl/shapes.pir
- /usr/share/doc/parrot-0.7.1/examples/opengl/triangle.pir
- /usr/share/doc/parrot-0.7.1/examples/pasm/cat.pasm
- /usr/share/doc/parrot-0.7.1/examples/pasm/fact.pasm
- /usr/share/doc/parrot-0.7.1/examples/pasm/hello.pasm
- /usr/share/doc/parrot-0.7.1/examples/pasm/nanoforth.pasm
- /usr/share/doc/parrot-0.7.1/examples/pasm/nanoforth2.pasm
- /usr/share/doc/parrot-0.7.1/examples/pasm/small.xml
- /usr/share/doc/parrot-0.7.1/examples/pasm/trace.pasm
- /usr/share/doc/parrot-0.7.1/examples/pasm/xml_parser.pasm
- /usr/share/doc/parrot-0.7.1/examples/past/01-sub.pir
- /usr/share/doc/parrot-0.7.1/examples/past/blocktype_immediate.pir
- /usr/share/doc/parrot-0.7.1/examples/past/four_plus_one.pir
- /usr/share/doc/parrot-0.7.1/examples/pge/benchmarks/ambs1/ambs1.pg
- /usr/share/doc/parrot-0.7.1/examples/pge/benchmarks/ambs1/main.pir
- /usr/share/doc/parrot-0.7.1/examples/pge/benchmarks/ambs1/Makefile
- /usr/share/doc/parrot-0.7.1/examples/pge/benchmarks/ambs1/mktestcase
- /usr/share/doc/parrot-0.7.1/examples/pge/grammars/IO.pg
- /usr/share/doc/parrot-0.7.1/examples/pge/grammars/PatchGrammar.pg
- /usr/share/doc/parrot-0.7.1/examples/pge/README
- /usr/share/doc/parrot-0.7.1/examples/pge/simple.pir
- /usr/share/doc/parrot-0.7.1/examples/pge/TAP_grammar.pg
- /usr/share/doc/parrot-0.7.1/examples/pir/circle.pir
- /usr/share/doc/parrot-0.7.1/examples/pir/euclid.pir
- /usr/share/doc/parrot-0.7.1/examples/pir/hanoi.pir
- /usr/share/doc/parrot-0.7.1/examples/pir/hello-dwim.pir
- /usr/share/doc/parrot-0.7.1/examples/pir/io.pir
- /usr/share/doc/parrot-0.7.1/examples/pir/levenshtein.pir
- /usr/share/doc/parrot-0.7.1/examples/pir/life.pir
- /usr/share/doc/parrot-0.7.1/examples/pir/local_label.pir
- /usr/share/doc/parrot-0.7.1/examples/pir/mandel.pir
- /usr/share/doc/parrot-0.7.1/examples/pir/queens_r.pir
- /usr/share/doc/parrot-0.7.1/examples/pir/quine_ord.pir
- /usr/share/doc/parrot-0.7.1/examples/pir/readline.pir
- /usr/share/doc/parrot-0.7.1/examples/pir/substr.pir
- /usr/share/doc/parrot-0.7.1/examples/pir/sudoku.pir
- /usr/share/doc/parrot-0.7.1/examples/pir/thr-primes.pir
- /usr/share/doc/parrot-0.7.1/examples/pir/uniq.pir
- /usr/share/doc/parrot-0.7.1/examples/README
- /usr/share/doc/parrot-0.7.1/examples/sdl/blue_rect.pl
- /usr/share/doc/parrot-0.7.1/examples/sdl/mandel.pir
- /usr/share/doc/parrot-0.7.1/examples/sdl/minesweeper/eventhandler.pir
- /usr/share/doc/parrot-0.7.1/examples/sdl/minesweeper/field.pir
- /usr/share/doc/parrot-0.7.1/examples/sdl/minesweeper/mines.pir
- /usr/share/doc/parrot-0.7.1/examples/sdl/minesweeper/mines.png
- /usr/share/doc/parrot-0.7.1/examples/sdl/minesweeper/mines_debug.png
- /usr/share/doc/parrot-0.7.1/examples/sdl/minesweeper/README
- /usr/share/doc/parrot-0.7.1/examples/sdl/minesweeper/smiley.png
- /usr/share/doc/parrot-0.7.1/examples/sdl/tetris/app.pir
- /usr/share/doc/parrot-0.7.1/examples/sdl/tetris/block.pir
- /usr/share/doc/parrot-0.7.1/examples/sdl/tetris/blockdata.pir
- /usr/share/doc/parrot-0.7.1/examples/sdl/tetris/blocks.pir
- /usr/share/doc/parrot-0.7.1/examples/sdl/tetris/board.pir
- /usr/share/doc/parrot-0.7.1/examples/sdl/tetris/boarddata.pir
- /usr/share/doc/parrot-0.7.1/examples/sdl/tetris/eventhandler.pir
- /usr/share/doc/parrot-0.7.1/examples/sdl/tetris/README
- /usr/share/doc/parrot-0.7.1/examples/sdl/tetris/tetris.pir
- /usr/share/doc/parrot-0.7.1/examples/shootout/ack.pir
- /usr/share/doc/parrot-0.7.1/examples/shootout/ack.pir_output
- /usr/share/doc/parrot-0.7.1/examples/shootout/ack.py
- /usr/share/doc/parrot-0.7.1/examples/shootout/binarytrees.pir
- /usr/share/doc/parrot-0.7.1/examples/shootout/binarytrees.pir_output
- /usr/share/doc/parrot-0.7.1/examples/shootout/fannkuch.pir
- /usr/share/doc/parrot-0.7.1/examples/shootout/fannkuch.pir_output
- /usr/share/doc/parrot-0.7.1/examples/shootout/fannkuch.py
- /usr/share/doc/parrot-0.7.1/examples/shootout/fasta.pir
- /usr/share/doc/parrot-0.7.1/examples/shootout/fasta.pir_output
- /usr/share/doc/parrot-0.7.1/examples/shootout/harmonic.pir
- /usr/share/doc/parrot-0.7.1/examples/shootout/knucleotide.pir
- /usr/share/doc/parrot-0.7.1/examples/shootout/knucleotide.pir_input
- /usr/share/doc/parrot-0.7.1/examples/shootout/knucleotide.pir_output
- /usr/share/doc/parrot-0.7.1/examples/shootout/mandelbrot.pir
- /usr/share/doc/parrot-0.7.1/examples/shootout/mandelbrot.pir_output
- /usr/share/doc/parrot-0.7.1/examples/shootout/nbody.pir
- /usr/share/doc/parrot-0.7.1/examples/shootout/nbody.pir_output
- /usr/share/doc/parrot-0.7.1/examples/shootout/nsieve-bits-2.pir
- /usr/share/doc/parrot-0.7.1/examples/shootout/nsieve-bits-2.pir_output
- /usr/share/doc/parrot-0.7.1/examples/shootout/nsieve-bits.pir
- /usr/share/doc/parrot-0.7.1/examples/shootout/nsieve-bits.pir_output
- /usr/share/doc/parrot-0.7.1/examples/shootout/nsieve.pir
- /usr/share/doc/parrot-0.7.1/examples/shootout/nsieve.pir_output
- /usr/share/doc/parrot-0.7.1/examples/shootout/partialsums-2.pir
- /usr/share/doc/parrot-0.7.1/examples/shootout/partialsums-2.pir_output
- /usr/share/doc/parrot-0.7.1/examples/shootout/partialsums.pir
- /usr/share/doc/parrot-0.7.1/examples/shootout/partialsums.pir_output
- /usr/share/doc/parrot-0.7.1/examples/shootout/pidigits.pir
- /usr/share/doc/parrot-0.7.1/examples/shootout/pidigits.pir_output
- /usr/share/doc/parrot-0.7.1/examples/shootout/pidigits.py
- /usr/share/doc/parrot-0.7.1/examples/shootout/random.pasm
- /usr/share/doc/parrot-0.7.1/examples/shootout/random.pir
- /usr/share/doc/parrot-0.7.1/examples/shootout/README
- /usr/share/doc/parrot-0.7.1/examples/shootout/recursive-2.pir
- /usr/share/doc/parrot-0.7.1/examples/shootout/recursive-2.pir_output
- /usr/share/doc/parrot-0.7.1/examples/shootout/recursive.pir
- /usr/share/doc/parrot-0.7.1/examples/shootout/recursive.pir_output
- /usr/share/doc/parrot-0.7.1/examples/shootout/regexdna.pir
- /usr/share/doc/parrot-0.7.1/examples/shootout/regexdna.pir_input
- /usr/share/doc/parrot-0.7.1/examples/shootout/regexdna.pir_output
- /usr/share/doc/parrot-0.7.1/examples/shootout/revcomp.pir
- /usr/share/doc/parrot-0.7.1/examples/shootout/revcomp.pir_input
- /usr/share/doc/parrot-0.7.1/examples/shootout/revcomp.pir_output
- /usr/share/doc/parrot-0.7.1/examples/shootout/spectralnorm.pir
- /usr/share/doc/parrot-0.7.1/examples/shootout/spectralnorm.pir_output
- /usr/share/doc/parrot-0.7.1/examples/shootout/sumcol.pir
- /usr/share/doc/parrot-0.7.1/examples/shootout/sumcol.pir_input
- /usr/share/doc/parrot-0.7.1/examples/shootout/sumcol.pir_output
- /usr/share/doc/parrot-0.7.1/examples/shootout/takfp.pir
- /usr/share/doc/parrot-0.7.1/examples/shootout/takfp.pir_output
- /usr/share/doc/parrot-0.7.1/examples/streams/Bytes.pir
- /usr/share/doc/parrot-0.7.1/examples/streams/Combiner.pir
- /usr/share/doc/parrot-0.7.1/examples/streams/Coroutine.pir
- /usr/share/doc/parrot-0.7.1/examples/streams/FileLines.pir
- /usr/share/doc/parrot-0.7.1/examples/streams/Filter.pir
- /usr/share/doc/parrot-0.7.1/examples/streams/Include.pir
- /usr/share/doc/parrot-0.7.1/examples/streams/Lines.pir
- /usr/share/doc/parrot-0.7.1/examples/streams/ParrotIO.pir
- /usr/share/doc/parrot-0.7.1/examples/streams/Replay.pir
- /usr/share/doc/parrot-0.7.1/examples/streams/SubCounter.pir
- /usr/share/doc/parrot-0.7.1/examples/streams/SubHello.pir
- /usr/share/doc/parrot-0.7.1/examples/streams/Writer.pir
- /usr/share/doc/parrot-0.7.1/examples/subs/bsr_ret.pasm
- /usr/share/doc/parrot-0.7.1/examples/subs/coroutine.pasm
- /usr/share/doc/parrot-0.7.1/examples/subs/jsr_ret.pasm
- /usr/share/doc/parrot-0.7.1/examples/subs/multi_retvals.pir
- /usr/share/doc/parrot-0.7.1/examples/subs/no_retval.pir
- /usr/share/doc/parrot-0.7.1/examples/subs/pasm_sub1.pasm
- /usr/share/doc/parrot-0.7.1/examples/subs/single_retval.pir
- /usr/share/doc/parrot-0.7.1/examples/tge/branch/branch.g
- /usr/share/doc/parrot-0.7.1/examples/tge/branch/lib/Branch.pir
- /usr/share/doc/parrot-0.7.1/examples/tge/branch/lib/Leaf.pir
- /usr/share/doc/parrot-0.7.1/examples/tge/branch/transform.pir
- /usr/share/doc/parrot-0.7.1/examples/tge/README
- /usr/share/doc/parrot-0.7.1/examples/tutorial/00_README.pod
- /usr/share/doc/parrot-0.7.1/examples/tutorial/01_temp_var.pir
- /usr/share/doc/parrot-0.7.1/examples/tutorial/02_local_var.pir
- /usr/share/doc/parrot-0.7.1/examples/tutorial/03_temp_var_basic_pmcs.pir
- /usr/share/doc/parrot-0.7.1/examples/tutorial/04_pod_comments.pir
- /usr/share/doc/parrot-0.7.1/examples/tutorial/10_math_ops.pir
- /usr/share/doc/parrot-0.7.1/examples/tutorial/11_math_ops_self_mod.pir
- /usr/share/doc/parrot-0.7.1/examples/tutorial/12_math_ops_pasm.pir
- /usr/share/doc/parrot-0.7.1/examples/tutorial/13_logical_ops.pir
- /usr/share/doc/parrot-0.7.1/examples/tutorial/20_string_ops.pir
- /usr/share/doc/parrot-0.7.1/examples/tutorial/21_string_ops_repeat.pir
- /usr/share/doc/parrot-0.7.1/examples/tutorial/22_string_ops_length.pir
- /usr/share/doc/parrot-0.7.1/examples/tutorial/23_string_ops_substr.pir
- /usr/share/doc/parrot-0.7.1/examples/tutorial/24_string_ops_clone.pir
- /usr/share/doc/parrot-0.7.1/examples/tutorial/30_arrays_basic.pir
- /usr/share/doc/parrot-0.7.1/examples/tutorial/31_array_ops_split.pir
- /usr/share/doc/parrot-0.7.1/examples/tutorial/32_array_ops_sprintf.pir
- /usr/share/doc/parrot-0.7.1/examples/tutorial/33_hashes.pir
- /usr/share/doc/parrot-0.7.1/examples/tutorial/34_multikey.pir
- /usr/share/doc/parrot-0.7.1/examples/tutorial/40_file_ops.pir
- /usr/share/doc/parrot-0.7.1/examples/tutorial/50_goto.pir
- /usr/share/doc/parrot-0.7.1/examples/tutorial/51_if_unless.pir
- /usr/share/doc/parrot-0.7.1/examples/tutorial/52_if_compare.pir
- /usr/share/doc/parrot-0.7.1/examples/tutorial/53_loop.pir
- /usr/share/doc/parrot-0.7.1/examples/tutorial/55_iterator.pir
- /usr/share/doc/parrot-0.7.1/examples/tutorial/56_defined.pir
- /usr/share/doc/parrot-0.7.1/examples/tutorial/57_exists.pir
- /usr/share/doc/parrot-0.7.1/examples/tutorial/60_subroutines.pir
- /usr/share/doc/parrot-0.7.1/examples/tutorial/61_namespaces.pir
- /usr/share/doc/parrot-0.7.1/examples/tutorial/62_namespaces.pir
- /usr/share/doc/parrot-0.7.1/examples/tutorial/70_class_object.pir
- /usr/share/doc/parrot-0.7.1/examples/tutorial/80_closure.pir
- /usr/share/doc/parrot-0.7.1/examples/tutorial/81_continuation.pir
- /usr/share/doc/parrot-0.7.1/examples/tutorial/82_coroutine.pir
- /usr/share/doc/parrot-0.7.1/examples/tutorial/83_external_libraries.pir
- /usr/share/doc/parrot-0.7.1/examples/tutorial/90_writing_tests.pir
- /usr/share/doc/parrot-0.7.1/LICENSE
- /usr/share/doc/parrot-0.7.1/NEWS
- /usr/share/doc/parrot-0.7.1/PLATFORMS
- /usr/share/doc/parrot-0.7.1/README
- /usr/share/doc/parrot-0.7.1/README_cygwin.pod
- /usr/share/doc/parrot-0.7.1/RESPONSIBLE_PARTIES
- /usr/share/doc/parrot-0.7.1/TODO
- /usr/share/emacs/site-lisp/parrot.el
- /usr/share/emacs/site-lisp/parrot.README
- /usr/share/emacs/site-lisp/pasm.el
- /usr/share/emacs/site-lisp/pir-mode.el
- /usr/share/man/man1/parrot-wmls.5.gz
- /usr/share/man/man1/parrot.1.gz
- /usr/share/man/man1/parrot_debugger.1.gz
- /usr/share/man/man1/pbc_disassemble.1.gz
- /usr/share/man/man1/pbc_info.1.gz
- /usr/share/man/man1/pbc_merge.1.gz
- /usr/share/man/man1/pbc_to_exe.1.gz
- /usr/share/vim/vimfiles/ftplugin/parrot.vim
- /usr/share/vim/vimfiles/syntax/pasm.vim
- /usr/share/vim/vimfiles/syntax/pir.vim
- /usr/share/vim/vimfiles/syntax/pmc.vim
/usr/lib/parrot/config_lib.pasm
/usr/lib/parrot/myconfig
/usr/lib/parrot/parrotbug
@@ -505,89 +73,48 @@
/usr/lib/parrot/dynext/match_group.dll
/usr/lib/parrot/dynext/rational.dll
/usr/lib/parrot/dynext/subproxy.dll
- /usr/lib/parrot/library/abc.pbc
- /usr/lib/parrot/library/APL.pbc
- /usr/lib/parrot/library/bf.pbc
- /usr/lib/parrot/library/bfc.pbc
- /usr/lib/parrot/library/bfco.pbc
- /usr/lib/parrot/library/c99.pbc
- /usr/lib/parrot/library/cardinal.pbc
+ /usr/lib/parrot/include/interpinfo.pasm
+ /usr/lib/parrot/include/config.fpmc
/usr/lib/parrot/library/CGI/QueryHash.pbc
/usr/lib/parrot/library/CGI/QueryHash.pir
- /usr/lib/parrot/library/chitchat.pbc
/usr/lib/parrot/library/Config/JSON.pir
- /usr/lib/parrot/library/config.pir
- /usr/lib/parrot/library/cpp.pbc
/usr/lib/parrot/library/Crow.pir
+ /usr/lib/parrot/library/Data/Dumper.pbc
+ /usr/lib/parrot/library/Data/Dumper.pir
/usr/lib/parrot/library/Data/Dumper/Base.pbc
/usr/lib/parrot/library/Data/Dumper/Base.pir
/usr/lib/parrot/library/Data/Dumper/Default.pbc
/usr/lib/parrot/library/Data/Dumper/Default.pir
- /usr/lib/parrot/library/Data/Dumper.pbc
- /usr/lib/parrot/library/Data/Dumper.pir
/usr/lib/parrot/library/Data/Escape.pbc
/usr/lib/parrot/library/Data/Escape.pir
/usr/lib/parrot/library/Data/Replace.pir
/usr/lib/parrot/library/Data/Sort.pbc
/usr/lib/parrot/library/Data/Sort.pir
/usr/lib/parrot/library/Digest/MD5.pir
- /usr/lib/parrot/library/dumper.pbc
- /usr/lib/parrot/library/dumper.pir
- /usr/lib/parrot/library/eclectus.pbc
- /usr/lib/parrot/library/ecmascript.pbc
+ /usr/lib/parrot/library/File/Spec.pir
/usr/lib/parrot/library/File/Spec/Unix.pir
/usr/lib/parrot/library/File/Spec/Win32.pir
- /usr/lib/parrot/library/File/Spec.pir
- /usr/lib/parrot/library/forth/tokenstream.pbc
- /usr/lib/parrot/library/forth/variablestack.pbc
- /usr/lib/parrot/library/forth/virtualstack.pbc
- /usr/lib/parrot/library/forth.pbc
/usr/lib/parrot/library/Getopt/Obj.pbc
/usr/lib/parrot/library/Getopt/Obj.pir
- /usr/lib/parrot/library/hq9plus.pbc
/usr/lib/parrot/library/HTTP/Daemon.pir
/usr/lib/parrot/library/Iter.pir
- /usr/lib/parrot/library/json.pbc
/usr/lib/parrot/library/JSON.pir
- /usr/lib/parrot/library/lazy-k.pbc
- /usr/lib/parrot/library/libpcre.pir
- /usr/lib/parrot/library/lisp.pbc
- /usr/lib/parrot/library/lolcode.pbc
- /usr/lib/parrot/library/m4.pbc
- /usr/lib/parrot/library/markdown.pbc
- /usr/lib/parrot/library/Math/Random/mt19937ar.pbc
- /usr/lib/parrot/library/Math/Random/mt19937ar.pir
/usr/lib/parrot/library/MIME/Base64.pbc
/usr/lib/parrot/library/MIME/Base64.pir
+ /usr/lib/parrot/library/Math/Random/mt19937ar.pir
/usr/lib/parrot/library/NCI/call_toolkit_init.pbc
/usr/lib/parrot/library/NCI/call_toolkit_init.pir
- /usr/lib/parrot/library/ncurses.declarations
- /usr/lib/parrot/library/ncurses.pasm
- /usr/lib/parrot/library/ncurses.pbc
- /usr/lib/parrot/library/ncurses.pir
- /usr/lib/parrot/library/ook.pbc
/usr/lib/parrot/library/OpenGL.pbc
/usr/lib/parrot/library/OpenGL.pir
/usr/lib/parrot/library/OpenGL_funcs.pir
/usr/lib/parrot/library/P6object.pbc
/usr/lib/parrot/library/P6object.pir
- /usr/lib/parrot/library/Parrot/Capture_PIR.pbc
- /usr/lib/parrot/library/Parrot/Capture_PIR.pir
- /usr/lib/parrot/library/Parrot/Coroutine.pbc
- /usr/lib/parrot/library/Parrot/Coroutine.pir
- /usr/lib/parrot/library/Parrot/Exception.pbc
- /usr/lib/parrot/library/Parrot/Exception.pir
- /usr/lib/parrot/library/parrotlib.pbc
- /usr/lib/parrot/library/parrotlib.pir
- /usr/lib/parrot/library/pcore.pir
- /usr/lib/parrot/library/pcre.pbc
- /usr/lib/parrot/library/pcre.pir
+ /usr/lib/parrot/library/PCT.pbc
/usr/lib/parrot/library/PCT/Grammar.pbc
/usr/lib/parrot/library/PCT/HLLCompiler.pbc
/usr/lib/parrot/library/PCT/PAST.pbc
/usr/lib/parrot/library/PCT/README
- /usr/lib/parrot/library/PCT.pbc
- /usr/lib/parrot/library/Pg.pir
+ /usr/lib/parrot/library/PGE.pbc
/usr/lib/parrot/library/PGE/Dumper.pbc
/usr/lib/parrot/library/PGE/Dumper.pir
/usr/lib/parrot/library/PGE/Glob.pbc
@@ -598,18 +125,17 @@
/usr/lib/parrot/library/PGE/Text.pir
/usr/lib/parrot/library/PGE/Util.pbc
/usr/lib/parrot/library/PGE/Util.pir
- /usr/lib/parrot/library/PGE.pbc
- /usr/lib/parrot/library/pheme.pbc
- /usr/lib/parrot/library/pipp.pbc
- /usr/lib/parrot/library/postgres.declarations
- /usr/lib/parrot/library/postgres.pasm
- /usr/lib/parrot/library/postgres.pir
+ /usr/lib/parrot/library/Parrot/Capture_PIR.pbc
+ /usr/lib/parrot/library/Parrot/Capture_PIR.pir
+ /usr/lib/parrot/library/Parrot/Coroutine.pbc
+ /usr/lib/parrot/library/Parrot/Coroutine.pir
+ /usr/lib/parrot/library/Parrot/Exception.pbc
+ /usr/lib/parrot/library/Parrot/Exception.pir
+ /usr/lib/parrot/library/Pg.pir
/usr/lib/parrot/library/Protoobject.pbc
/usr/lib/parrot/library/Protoobject.pir
- /usr/lib/parrot/library/punie.pbc
- /usr/lib/parrot/library/pynie.pbc
- /usr/lib/parrot/library/random_lib.pir
/usr/lib/parrot/library/Range.pir
+ /usr/lib/parrot/library/SDL.pir
/usr/lib/parrot/library/SDL/App.pir
/usr/lib/parrot/library/SDL/Button.pir
/usr/lib/parrot/library/SDL/Color.pir
@@ -624,8 +150,6 @@
/usr/lib/parrot/library/SDL/Sprite.pir
/usr/lib/parrot/library/SDL/StopWatch.pir
/usr/lib/parrot/library/SDL/Surface.pir
- /usr/lib/parrot/library/SDL.pir
- /usr/lib/parrot/library/squaak.pbc
/usr/lib/parrot/library/STM.pir
/usr/lib/parrot/library/Stream/Base.pbc
/usr/lib/parrot/library/Stream/Base.pir
@@ -646,43 +170,487 @@
/usr/lib/parrot/library/Stream/Writer.pbc
/usr/lib/parrot/library/Stream/Writer.pir
/usr/lib/parrot/library/String/Utils.pir
+ /usr/lib/parrot/library/TGE.pbc
/usr/lib/parrot/library/Tcl/Glob.pir
- /usr/lib/parrot/library/tcl.pbc
- /usr/lib/parrot/library/tcpstream.pir
+ /usr/lib/parrot/library/Test/Builder.pir
/usr/lib/parrot/library/Test/Builder/Output.pir
/usr/lib/parrot/library/Test/Builder/Test.pir
- /usr/lib/parrot/library/Test/Builder/Tester.pir
/usr/lib/parrot/library/Test/Builder/TestPlan.pir
- /usr/lib/parrot/library/Test/Builder.pir
+ /usr/lib/parrot/library/Test/Builder/Tester.pir
/usr/lib/parrot/library/Test/Class.pir
/usr/lib/parrot/library/Test/More.pir
- /usr/lib/parrot/library/TGE.pbc
- /usr/lib/parrot/library/unlambda.pbc
- /usr/lib/parrot/library/uuid.pir
- /usr/lib/parrot/library/WMLScript/wmlsconsole.pbc
- /usr/lib/parrot/library/WMLScript/wmlsfloat.pbc
- /usr/lib/parrot/library/WMLScript/wmlslang.pbc
- /usr/lib/parrot/library/WMLScript/wmlsstring.pbc
- /usr/lib/parrot/library/WMLScript.pbc
+ /usr/lib/parrot/library/YAML/Dumper.pir
/usr/lib/parrot/library/YAML/Dumper/Base.pir
/usr/lib/parrot/library/YAML/Dumper/Default.pir
- /usr/lib/parrot/library/YAML/Dumper.pir
/usr/lib/parrot/library/YAML/Parser/Syck.pir
+ /usr/lib/parrot/library/dumper.pbc
+ /usr/lib/parrot/library/dumper.pir
+ /usr/lib/parrot/library/libpcre.pir
+ /usr/lib/parrot/library/ncurses.declarations
+ /usr/lib/parrot/library/ncurses.pasm
+ /usr/lib/parrot/library/ncurses.pbc
+ /usr/lib/parrot/library/ncurses.pir
+ /usr/lib/parrot/library/parrotlib.pbc
+ /usr/lib/parrot/library/parrotlib.pir
+ /usr/lib/parrot/library/pcore.pir
+ /usr/lib/parrot/library/pcre.pbc
+ /usr/lib/parrot/library/pcre.pir
+ /usr/lib/parrot/library/postgres.declarations
+ /usr/lib/parrot/library/postgres.pasm
+ /usr/lib/parrot/library/postgres.pir
+ /usr/lib/parrot/library/random_lib.pir
+ /usr/lib/parrot/library/tcpstream.pir
+ /usr/lib/parrot/library/uuid.pir
/usr/lib/parrot/library/yaml_dumper.pir
- /usr/lib/parrot/include/interpinfo.pasm
- /usr/lib/parrot/include/config.fpmc
+ /usr/share/doc/parrot-0.8.2/LICENSE
+ /usr/share/doc/parrot-0.8.2/RESPONSIBLE_PARTIES
+ /usr/share/doc/parrot-0.8.2/TODO
+ /usr/share/doc/parrot-0.8.2/docs/art/pp001-intro.pod
+ /usr/share/doc/parrot-0.8.2/docs/art/pp002-pmc.pod
+ /usr/share/doc/parrot-0.8.2/docs/art/pp003-oop.pod
+ /usr/share/doc/parrot-0.8.2/docs/book/appendix.pod
+ /usr/share/doc/parrot-0.8.2/docs/book/ch01_overview.pod
+ /usr/share/doc/parrot-0.8.2/docs/book/ch02_getting_started.pod
+ /usr/share/doc/parrot-0.8.2/docs/book/ch03_pir_basics.pod
+ /usr/share/doc/parrot-0.8.2/docs/book/ch04_pir_subroutines.pod
+ /usr/share/doc/parrot-0.8.2/docs/book/ch05_pasm.pod
+ /usr/share/doc/parrot-0.8.2/docs/book/ch06_testing.pod
+ /usr/share/doc/parrot-0.8.2/docs/book/ch07_architecture.pod
+ /usr/share/doc/parrot-0.8.2/docs/book/ch08_reference.pod
+ /usr/share/doc/parrot-0.8.2/docs/book/figs/p6e_0801.png
+ /usr/share/doc/parrot-0.8.2/docs/debugger.pod
+ /usr/share/doc/parrot-0.8.2/docs/dev/byteorder.pod
+ /usr/share/doc/parrot-0.8.2/docs/dev/debugging_with_msvc.pod
+ /usr/share/doc/parrot-0.8.2/docs/dev/headerizer.pod
+ /usr/share/doc/parrot-0.8.2/docs/dev/jit_i386.pod
+ /usr/share/doc/parrot-0.8.2/docs/dev/longopt.pod
+ /usr/share/doc/parrot-0.8.2/docs/dev/optimizer.pod
+ /usr/share/doc/parrot-0.8.2/docs/dev/parrot_api.pod
+ /usr/share/doc/parrot-0.8.2/docs/dev/pcc_state.pod
+ /usr/share/doc/parrot-0.8.2/docs/dev/pccmethods.pod
+ /usr/share/doc/parrot-0.8.2/docs/dev/pmc_obj_design_meeting_notes.pod
+ /usr/share/doc/parrot-0.8.2/docs/dev/seatbelts.pod
+ /usr/share/doc/parrot-0.8.2/docs/embed.pod
+ /usr/share/doc/parrot-0.8.2/docs/extend.pod
+ /usr/share/doc/parrot-0.8.2/docs/faq.pod
+ /usr/share/doc/parrot-0.8.2/docs/gettingstarted.pod
+ /usr/share/doc/parrot-0.8.2/docs/glossary.pod
+ /usr/share/doc/parrot-0.8.2/docs/imcc/README
+ /usr/share/doc/parrot-0.8.2/docs/imcc/imcfaq.pod
+ /usr/share/doc/parrot-0.8.2/docs/imcc/operation.pod
+ /usr/share/doc/parrot-0.8.2/docs/intro.pod
+ /usr/share/doc/parrot-0.8.2/docs/jit.pod
+ /usr/share/doc/parrot-0.8.2/docs/memory_internals.pod
+ /usr/share/doc/parrot-0.8.2/docs/mmd.pod
+ /usr/share/doc/parrot-0.8.2/docs/native_exec.pod
+ /usr/share/doc/parrot-0.8.2/docs/ops/bit.pod
+ /usr/share/doc/parrot-0.8.2/docs/ops/cmp.pod
+ /usr/share/doc/parrot-0.8.2/docs/ops/core.pod
+ /usr/share/doc/parrot-0.8.2/docs/ops/debug.pod
+ /usr/share/doc/parrot-0.8.2/docs/ops/experimental.pod
+ /usr/share/doc/parrot-0.8.2/docs/ops/io.pod
+ /usr/share/doc/parrot-0.8.2/docs/ops/math.pod
+ /usr/share/doc/parrot-0.8.2/docs/ops/object.pod
+ /usr/share/doc/parrot-0.8.2/docs/ops/obscure.pod
+ /usr/share/doc/parrot-0.8.2/docs/ops/pic.pod
+ /usr/share/doc/parrot-0.8.2/docs/ops/pmc.pod
+ /usr/share/doc/parrot-0.8.2/docs/ops/set.pod
+ /usr/share/doc/parrot-0.8.2/docs/ops/string.pod
+ /usr/share/doc/parrot-0.8.2/docs/ops/sys.pod
+ /usr/share/doc/parrot-0.8.2/docs/ops/var.pod
+ /usr/share/doc/parrot-0.8.2/docs/optable.pod
+ /usr/share/doc/parrot-0.8.2/docs/overview.pod
+ /usr/share/doc/parrot-0.8.2/docs/parrot.pod
+ /usr/share/doc/parrot-0.8.2/docs/parrotbyte.pod
+ /usr/share/doc/parrot-0.8.2/docs/parrothist.pod
+ /usr/share/doc/parrot-0.8.2/docs/pct/gettingstarted.pod
+ /usr/share/doc/parrot-0.8.2/docs/pct/past_building_blocks.pod
+ /usr/share/doc/parrot-0.8.2/docs/pct/pct_optable_guide.pod
+ /usr/share/doc/parrot-0.8.2/docs/pdds/README
+ /usr/share/doc/parrot-0.8.2/docs/pdds/draft/pdd01_overview.pod
+ /usr/share/doc/parrot-0.8.2/docs/pdds/draft/pdd04_datatypes.pod
+ /usr/share/doc/parrot-0.8.2/docs/pdds/draft/pdd05_opfunc.pod
+ /usr/share/doc/parrot-0.8.2/docs/pdds/draft/pdd06_pasm.pod
+ /usr/share/doc/parrot-0.8.2/docs/pdds/draft/pdd08_keys.pod
+ /usr/share/doc/parrot-0.8.2/docs/pdds/draft/pdd10_embedding.pod
+ /usr/share/doc/parrot-0.8.2/docs/pdds/draft/pdd11_extending.pod
+ /usr/share/doc/parrot-0.8.2/docs/pdds/draft/pdd14_bignum.pod
+ /usr/share/doc/parrot-0.8.2/docs/pdds/draft/pdd16_native_call.pod
+ /usr/share/doc/parrot-0.8.2/docs/pdds/draft/pdd19_pir.pod
+ /usr/share/doc/parrot-0.8.2/docs/pdds/draft/pdd29_compiler_tools.pod
+ /usr/share/doc/parrot-0.8.2/docs/pdds/draft/pdd30_install.pod
+ /usr/share/doc/parrot-0.8.2/docs/pdds/pdd00_pdd.pod
+ /usr/share/doc/parrot-0.8.2/docs/pdds/pdd03_calling_conventions.pod
+ /usr/share/doc/parrot-0.8.2/docs/pdds/pdd07_codingstd.pod
+ /usr/share/doc/parrot-0.8.2/docs/pdds/pdd09_gc.pod
+ /usr/share/doc/parrot-0.8.2/docs/pdds/pdd13_bytecode.pod
+ /usr/share/doc/parrot-0.8.2/docs/pdds/pdd15_object_metamodel.png
+ /usr/share/doc/parrot-0.8.2/docs/pdds/pdd15_object_metamodel.svg
+ /usr/share/doc/parrot-0.8.2/docs/pdds/pdd15_objects.pod
+ /usr/share/doc/parrot-0.8.2/docs/pdds/pdd17_pmc.pod
+ /usr/share/doc/parrot-0.8.2/docs/pdds/pdd18_security.pod
+ /usr/share/doc/parrot-0.8.2/docs/pdds/pdd20_lexical_vars.pod
+ /usr/share/doc/parrot-0.8.2/docs/pdds/pdd21_namespaces.pod
+ /usr/share/doc/parrot-0.8.2/docs/pdds/pdd22_io.pod
+ /usr/share/doc/parrot-0.8.2/docs/pdds/pdd23_exceptions.pod
+ /usr/share/doc/parrot-0.8.2/docs/pdds/pdd24_events.pod
+ /usr/share/doc/parrot-0.8.2/docs/pdds/pdd25_concurrency.pod
+ /usr/share/doc/parrot-0.8.2/docs/pdds/pdd26_ast.pod
+ /usr/share/doc/parrot-0.8.2/docs/pdds/pdd27_multiple_dispatch.pod
+ /usr/share/doc/parrot-0.8.2/docs/pdds/pdd28_strings.pod
+ /usr/share/doc/parrot-0.8.2/docs/pdds/pdd_template.pod
+ /usr/share/doc/parrot-0.8.2/docs/pmc.pod
+ /usr/share/doc/parrot-0.8.2/docs/pmc/array.pod
+ /usr/share/doc/parrot-0.8.2/docs/pmc/documentation.pod
+ /usr/share/doc/parrot-0.8.2/docs/pmc/struct.pod
+ /usr/share/doc/parrot-0.8.2/docs/pmc/subs.pod
+ /usr/share/doc/parrot-0.8.2/docs/pmc2c.pod
+ /usr/share/doc/parrot-0.8.2/docs/porting_intro.pod
+ /usr/share/doc/parrot-0.8.2/docs/project/cage_cleaners_guide.pod
+ /usr/share/doc/parrot-0.8.2/docs/project/committer_guide.pod
+ /usr/share/doc/parrot-0.8.2/docs/project/debian_packaging_guide.pod
+ /usr/share/doc/parrot-0.8.2/docs/project/metacommitter_guide.pod
+ /usr/share/doc/parrot-0.8.2/docs/project/pause_guide.pod
+ /usr/share/doc/parrot-0.8.2/docs/project/release_manager_guide.pod
+ /usr/share/doc/parrot-0.8.2/docs/project/roles_responsibilities.pod
+ /usr/share/doc/parrot-0.8.2/docs/project/ticket_wrangler_guide.pod
+ /usr/share/doc/parrot-0.8.2/docs/req/model_users.pod
+ /usr/share/doc/parrot-0.8.2/docs/resources/favicon.ico
+ /usr/share/doc/parrot-0.8.2/docs/resources/parrot_small.png
+ /usr/share/doc/parrot-0.8.2/docs/resources/perl.css
+ /usr/share/doc/parrot-0.8.2/docs/resources/up.gif
+ /usr/share/doc/parrot-0.8.2/docs/running.pod
+ /usr/share/doc/parrot-0.8.2/docs/stability.pod
+ /usr/share/doc/parrot-0.8.2/docs/stm/atomic.pod
+ /usr/share/doc/parrot-0.8.2/docs/stm/howto.pod
+ /usr/share/doc/parrot-0.8.2/docs/stm/internals.pod
+ /usr/share/doc/parrot-0.8.2/docs/stm/stm_frontend.pod
+ /usr/share/doc/parrot-0.8.2/docs/stm/thread-issues.pod
+ /usr/share/doc/parrot-0.8.2/docs/submissions.pod
+ /usr/share/doc/parrot-0.8.2/docs/tests.pod
+ /usr/share/doc/parrot-0.8.2/docs/vtables.pod
+ /usr/share/doc/parrot-0.8.2/examples/README
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/addit.pasm
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/addit.pir
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/addit.pl
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/addit.rb
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/addit2.pir
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/array_access.pir
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/arriter.pir
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/arriter.pl
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/arriter.rb
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/arriter_o1.pir
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/bench_newp.pasm
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/fib.pir
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/fib.pl
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/fib.py
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/fib.rb
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/float4.pir
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/freeze.pasm
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/freeze.pl
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/gc_alloc_new.pasm
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/gc_alloc_reuse.pasm
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/gc_generations.pasm
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/gc_header_new.pasm
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/gc_header_reuse.pasm
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/gc_waves_headers.pasm
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/gc_waves_sizeable_data.pasm
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/gc_waves_sizeable_headers.pasm
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/mops.pasm
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/mops.pl
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/mops_intval.pasm
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo1.pasm
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo1.pl
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo1.py
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo1.rb
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo2.pasm
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo2.pl
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo2.py
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo2.rb
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo3.pasm
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo3.pl
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo3.py
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo3.rb
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo4.pasm
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo4.pl
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo4.py
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo4.rb
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo5.pir
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo5.pl
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo5.py
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo5.rb
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo6.pir
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo6.pl
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo6.py
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo6.rb
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oofib.pir
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oofib.pl
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oofib.py
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oofib.rb
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oon.txt
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/overload.pir
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/overload.pl
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/primes.c
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/primes.pasm
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/primes.pl
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/primes2.c
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/primes2.pir
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/primes2.pl
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/primes2.py
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/primes2.rb
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/primes2_i.pir
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/primes_i.pasm
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/shared_ref.pasm
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/shared_ref.pl
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/stress.pasm
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/stress.pl
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/stress.rb
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/stress1.pasm
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/stress1.pl
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/stress2.pasm
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/stress2.pl
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/stress2.rb
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/stress3.pasm
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/vpm.pir
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/vpm.pl
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/vpm.py
+ /usr/share/doc/parrot-0.8.2/examples/benchmarks/vpm.rb
+ /usr/share/doc/parrot-0.8.2/examples/c/nanoparrot.c
+ /usr/share/doc/parrot-0.8.2/examples/c/test_main.c
+ /usr/share/doc/parrot-0.8.2/examples/compilers/Makefile
+ /usr/share/doc/parrot-0.8.2/examples/compilers/japhc.c
+ /usr/share/doc/parrot-0.8.2/examples/io/async_select.pir
+ /usr/share/doc/parrot-0.8.2/examples/io/echo_client.pir
+ /usr/share/doc/parrot-0.8.2/examples/io/http.pir
+ /usr/share/doc/parrot-0.8.2/examples/io/httpd.pir
+ /usr/share/doc/parrot-0.8.2/examples/io/httpd2.pir
+ /usr/share/doc/parrot-0.8.2/examples/io/net_smtp.pasm
+ /usr/share/doc/parrot-0.8.2/examples/io/pioctl.pasm
+ /usr/share/doc/parrot-0.8.2/examples/io/pipe2.pir
+ /usr/share/doc/parrot-0.8.2/examples/io/pipe3.pir
+ /usr/share/doc/parrot-0.8.2/examples/japh/README
+ /usr/share/doc/parrot-0.8.2/examples/japh/japh1.pasm
+ /usr/share/doc/parrot-0.8.2/examples/japh/japh2.pasm
+ /usr/share/doc/parrot-0.8.2/examples/japh/japh3.pasm
+ /usr/share/doc/parrot-0.8.2/examples/japh/japh4.pasm
+ /usr/share/doc/parrot-0.8.2/examples/japh/japh5.pasm
+ /usr/share/doc/parrot-0.8.2/examples/library/acorn.l
+ /usr/share/doc/parrot-0.8.2/examples/library/getopt_demo.pir
+ /usr/share/doc/parrot-0.8.2/examples/library/md5sum.pir
+ /usr/share/doc/parrot-0.8.2/examples/library/ncurses_life.pir
+ /usr/share/doc/parrot-0.8.2/examples/library/pcre.pir
+ /usr/share/doc/parrot-0.8.2/examples/mops/README
+ /usr/share/doc/parrot-0.8.2/examples/mops/mops.c
+ /usr/share/doc/parrot-0.8.2/examples/mops/mops.cs
+ /usr/share/doc/parrot-0.8.2/examples/mops/mops.il
+ /usr/share/doc/parrot-0.8.2/examples/mops/mops.p6
+ /usr/share/doc/parrot-0.8.2/examples/mops/mops.pl
+ /usr/share/doc/parrot-0.8.2/examples/mops/mops.ps
+ /usr/share/doc/parrot-0.8.2/examples/mops/mops.py
+ /usr/share/doc/parrot-0.8.2/examples/mops/mops.rb
+ /usr/share/doc/parrot-0.8.2/examples/mops/mops.scheme
+ /usr/share/doc/parrot-0.8.2/examples/namespace/namespace_dump.pir
+ /usr/share/doc/parrot-0.8.2/examples/nci/PQt.C
+ /usr/share/doc/parrot-0.8.2/examples/nci/QtHelloWorld.pasm
+ /usr/share/doc/parrot-0.8.2/examples/nci/ls.pir
+ /usr/share/doc/parrot-0.8.2/examples/nci/sdl_blue_rectangle.pir
+ /usr/share/doc/parrot-0.8.2/examples/nci/win32api.pir
+ /usr/share/doc/parrot-0.8.2/examples/opengl/shapes.pir
+ /usr/share/doc/parrot-0.8.2/examples/opengl/triangle.pir
+ /usr/share/doc/parrot-0.8.2/examples/pasm/cat.pasm
+ /usr/share/doc/parrot-0.8.2/examples/pasm/fact.pasm
+ /usr/share/doc/parrot-0.8.2/examples/pasm/hello.pasm
+ /usr/share/doc/parrot-0.8.2/examples/pasm/nanoforth.pasm
+ /usr/share/doc/parrot-0.8.2/examples/pasm/nanoforth2.pasm
+ /usr/share/doc/parrot-0.8.2/examples/pasm/small.xml
+ /usr/share/doc/parrot-0.8.2/examples/pasm/trace.pasm
+ /usr/share/doc/parrot-0.8.2/examples/pasm/xml_parser.pasm
+ /usr/share/doc/parrot-0.8.2/examples/past/01-sub.pir
+ /usr/share/doc/parrot-0.8.2/examples/past/blocktype_immediate.pir
+ /usr/share/doc/parrot-0.8.2/examples/past/four_plus_one.pir
+ /usr/share/doc/parrot-0.8.2/examples/pge/README
+ /usr/share/doc/parrot-0.8.2/examples/pge/TAP_grammar.pg
+ /usr/share/doc/parrot-0.8.2/examples/pge/benchmarks/ambs1/Makefile
+ /usr/share/doc/parrot-0.8.2/examples/pge/benchmarks/ambs1/ambs1.pg
+ /usr/share/doc/parrot-0.8.2/examples/pge/benchmarks/ambs1/main.pir
+ /usr/share/doc/parrot-0.8.2/examples/pge/benchmarks/ambs1/mktestcase
+ /usr/share/doc/parrot-0.8.2/examples/pge/grammars/IO.pg
+ /usr/share/doc/parrot-0.8.2/examples/pge/grammars/PatchGrammar.pg
+ /usr/share/doc/parrot-0.8.2/examples/pge/simple.pir
+ /usr/share/doc/parrot-0.8.2/examples/pir/circle.pir
+ /usr/share/doc/parrot-0.8.2/examples/pir/euclid.pir
+ /usr/share/doc/parrot-0.8.2/examples/pir/hanoi.pir
+ /usr/share/doc/parrot-0.8.2/examples/pir/hello-dwim.pir
+ /usr/share/doc/parrot-0.8.2/examples/pir/io.pir
+ /usr/share/doc/parrot-0.8.2/examples/pir/levenshtein.pir
+ /usr/share/doc/parrot-0.8.2/examples/pir/life.pir
+ /usr/share/doc/parrot-0.8.2/examples/pir/local_label.pir
+ /usr/share/doc/parrot-0.8.2/examples/pir/mandel.pir
+ /usr/share/doc/parrot-0.8.2/examples/pir/queens_r.pir
+ /usr/share/doc/parrot-0.8.2/examples/pir/quine_ord.pir
+ /usr/share/doc/parrot-0.8.2/examples/pir/readline.pir
+ /usr/share/doc/parrot-0.8.2/examples/pir/substr.pir
+ /usr/share/doc/parrot-0.8.2/examples/pir/sudoku.pir
+ /usr/share/doc/parrot-0.8.2/examples/pir/thr-primes.pir
+ /usr/share/doc/parrot-0.8.2/examples/pir/uniq.pir
+ /usr/share/doc/parrot-0.8.2/examples/sdl/blue_rect.pl
+ /usr/share/doc/parrot-0.8.2/examples/sdl/mandel.pir
+ /usr/share/doc/parrot-0.8.2/examples/sdl/minesweeper/README
+ /usr/share/doc/parrot-0.8.2/examples/sdl/minesweeper/eventhandler.pir
+ /usr/share/doc/parrot-0.8.2/examples/sdl/minesweeper/field.pir
+ /usr/share/doc/parrot-0.8.2/examples/sdl/minesweeper/mines.pir
+ /usr/share/doc/parrot-0.8.2/examples/sdl/minesweeper/mines.png
+ /usr/share/doc/parrot-0.8.2/examples/sdl/minesweeper/mines_debug.png
+ /usr/share/doc/parrot-0.8.2/examples/sdl/minesweeper/smiley.png
+ /usr/share/doc/parrot-0.8.2/examples/sdl/tetris/README
+ /usr/share/doc/parrot-0.8.2/examples/sdl/tetris/app.pir
+ /usr/share/doc/parrot-0.8.2/examples/sdl/tetris/block.pir
+ /usr/share/doc/parrot-0.8.2/examples/sdl/tetris/blockdata.pir
+ /usr/share/doc/parrot-0.8.2/examples/sdl/tetris/blocks.pir
+ /usr/share/doc/parrot-0.8.2/examples/sdl/tetris/board.pir
+ /usr/share/doc/parrot-0.8.2/examples/sdl/tetris/boarddata.pir
+ /usr/share/doc/parrot-0.8.2/examples/sdl/tetris/eventhandler.pir
+ /usr/share/doc/parrot-0.8.2/examples/sdl/tetris/tetris.pir
+ /usr/share/doc/parrot-0.8.2/examples/shootout/README
+ /usr/share/doc/parrot-0.8.2/examples/shootout/ack.pir
+ /usr/share/doc/parrot-0.8.2/examples/shootout/ack.pir_output
+ /usr/share/doc/parrot-0.8.2/examples/shootout/ack.py
+ /usr/share/doc/parrot-0.8.2/examples/shootout/binarytrees.pir
+ /usr/share/doc/parrot-0.8.2/examples/shootout/binarytrees.pir_output
+ /usr/share/doc/parrot-0.8.2/examples/shootout/fannkuch.pir
+ /usr/share/doc/parrot-0.8.2/examples/shootout/fannkuch.pir_output
+ /usr/share/doc/parrot-0.8.2/examples/shootout/fannkuch.py
+ /usr/share/doc/parrot-0.8.2/examples/shootout/fasta.pir
+ /usr/share/doc/parrot-0.8.2/examples/shootout/fasta.pir_output
+ /usr/share/doc/parrot-0.8.2/examples/shootout/harmonic.pir
+ /usr/share/doc/parrot-0.8.2/examples/shootout/knucleotide.pir
+ /usr/share/doc/parrot-0.8.2/examples/shootout/knucleotide.pir_input
+ /usr/share/doc/parrot-0.8.2/examples/shootout/knucleotide.pir_output
+ /usr/share/doc/parrot-0.8.2/examples/shootout/mandelbrot.pir
+ /usr/share/doc/parrot-0.8.2/examples/shootout/mandelbrot.pir_output
+ /usr/share/doc/parrot-0.8.2/examples/shootout/nbody.pir
+ /usr/share/doc/parrot-0.8.2/examples/shootout/nbody.pir_output
+ /usr/share/doc/parrot-0.8.2/examples/shootout/nsieve-bits-2.pir
+ /usr/share/doc/parrot-0.8.2/examples/shootout/nsieve-bits-2.pir_output
+ /usr/share/doc/parrot-0.8.2/examples/shootout/nsieve-bits.pir
+ /usr/share/doc/parrot-0.8.2/examples/shootout/nsieve-bits.pir_output
+ /usr/share/doc/parrot-0.8.2/examples/shootout/nsieve.pir
+ /usr/share/doc/parrot-0.8.2/examples/shootout/nsieve.pir_output
+ /usr/share/doc/parrot-0.8.2/examples/shootout/partialsums-2.pir
+ /usr/share/doc/parrot-0.8.2/examples/shootout/partialsums-2.pir_output
+ /usr/share/doc/parrot-0.8.2/examples/shootout/partialsums.pir
+ /usr/share/doc/parrot-0.8.2/examples/shootout/partialsums.pir_output
+ /usr/share/doc/parrot-0.8.2/examples/shootout/pidigits.pir
+ /usr/share/doc/parrot-0.8.2/examples/shootout/pidigits.pir_output
+ /usr/share/doc/parrot-0.8.2/examples/shootout/pidigits.py
+ /usr/share/doc/parrot-0.8.2/examples/shootout/random.pasm
+ /usr/share/doc/parrot-0.8.2/examples/shootout/random.pir
+ /usr/share/doc/parrot-0.8.2/examples/shootout/recursive-2.pir
+ /usr/share/doc/parrot-0.8.2/examples/shootout/recursive-2.pir_output
+ /usr/share/doc/parrot-0.8.2/examples/shootout/recursive.pir
+ /usr/share/doc/parrot-0.8.2/examples/shootout/recursive.pir_output
+ /usr/share/doc/parrot-0.8.2/examples/shootout/regexdna.pir
+ /usr/share/doc/parrot-0.8.2/examples/shootout/regexdna.pir_input
+ /usr/share/doc/parrot-0.8.2/examples/shootout/regexdna.pir_output
+ /usr/share/doc/parrot-0.8.2/examples/shootout/revcomp.pir
+ /usr/share/doc/parrot-0.8.2/examples/shootout/revcomp.pir_input
+ /usr/share/doc/parrot-0.8.2/examples/shootout/revcomp.pir_output
+ /usr/share/doc/parrot-0.8.2/examples/shootout/spectralnorm.pir
+ /usr/share/doc/parrot-0.8.2/examples/shootout/spectralnorm.pir_output
+ /usr/share/doc/parrot-0.8.2/examples/shootout/sumcol.pir
+ /usr/share/doc/parrot-0.8.2/examples/shootout/sumcol.pir_input
+ /usr/share/doc/parrot-0.8.2/examples/shootout/sumcol.pir_output
+ /usr/share/doc/parrot-0.8.2/examples/shootout/takfp.pir
+ /usr/share/doc/parrot-0.8.2/examples/shootout/takfp.pir_output
+ /usr/share/doc/parrot-0.8.2/examples/streams/Bytes.pir
+ /usr/share/doc/parrot-0.8.2/examples/streams/Combiner.pir
+ /usr/share/doc/parrot-0.8.2/examples/streams/Coroutine.pir
+ /usr/share/doc/parrot-0.8.2/examples/streams/FileLines.pir
+ /usr/share/doc/parrot-0.8.2/examples/streams/Filter.pir
+ /usr/share/doc/parrot-0.8.2/examples/streams/Include.pir
+ /usr/share/doc/parrot-0.8.2/examples/streams/Lines.pir
+ /usr/share/doc/parrot-0.8.2/examples/streams/ParrotIO.pir
+ /usr/share/doc/parrot-0.8.2/examples/streams/Replay.pir
+ /usr/share/doc/parrot-0.8.2/examples/streams/SubCounter.pir
+ /usr/share/doc/parrot-0.8.2/examples/streams/SubHello.pir
+ /usr/share/doc/parrot-0.8.2/examples/streams/Writer.pir
+ /usr/share/doc/parrot-0.8.2/examples/subs/bsr_ret.pasm
+ /usr/share/doc/parrot-0.8.2/examples/subs/coroutine.pasm
+ /usr/share/doc/parrot-0.8.2/examples/subs/jsr_ret.pasm
+ /usr/share/doc/parrot-0.8.2/examples/subs/multi_retvals.pir
+ /usr/share/doc/parrot-0.8.2/examples/subs/no_retval.pir
+ /usr/share/doc/parrot-0.8.2/examples/subs/pasm_sub1.pasm
+ /usr/share/doc/parrot-0.8.2/examples/subs/single_retval.pir
+ /usr/share/doc/parrot-0.8.2/examples/tge/README
+ /usr/share/doc/parrot-0.8.2/examples/tge/branch/branch.g
+ /usr/share/doc/parrot-0.8.2/examples/tge/branch/lib/Branch.pir
+ /usr/share/doc/parrot-0.8.2/examples/tge/branch/lib/Leaf.pir
+ /usr/share/doc/parrot-0.8.2/examples/tge/branch/transform.pir
+ /usr/share/doc/parrot-0.8.2/examples/tutorial/00_README.pod
+ /usr/share/doc/parrot-0.8.2/examples/tutorial/01_temp_var.pir
+ /usr/share/doc/parrot-0.8.2/examples/tutorial/02_local_var.pir
+ /usr/share/doc/parrot-0.8.2/examples/tutorial/03_temp_var_basic_pmcs.pir
+ /usr/share/doc/parrot-0.8.2/examples/tutorial/04_pod_comments.pir
+ /usr/share/doc/parrot-0.8.2/examples/tutorial/10_math_ops.pir
+ /usr/share/doc/parrot-0.8.2/examples/tutorial/11_math_ops_self_mod.pir
+ /usr/share/doc/parrot-0.8.2/examples/tutorial/12_math_ops_pasm.pir
+ /usr/share/doc/parrot-0.8.2/examples/tutorial/13_logical_ops.pir
+ /usr/share/doc/parrot-0.8.2/examples/tutorial/20_string_ops.pir
+ /usr/share/doc/parrot-0.8.2/examples/tutorial/21_string_ops_repeat.pir
+ /usr/share/doc/parrot-0.8.2/examples/tutorial/22_string_ops_length.pir
+ /usr/share/doc/parrot-0.8.2/examples/tutorial/23_string_ops_substr.pir
+ /usr/share/doc/parrot-0.8.2/examples/tutorial/24_string_ops_clone.pir
+ /usr/share/doc/parrot-0.8.2/examples/tutorial/30_arrays_basic.pir
+ /usr/share/doc/parrot-0.8.2/examples/tutorial/31_array_ops_split.pir
+ /usr/share/doc/parrot-0.8.2/examples/tutorial/32_array_ops_sprintf.pir
+ /usr/share/doc/parrot-0.8.2/examples/tutorial/33_hashes.pir
+ /usr/share/doc/parrot-0.8.2/examples/tutorial/34_multikey.pir
+ /usr/share/doc/parrot-0.8.2/examples/tutorial/40_file_ops.pir
+ /usr/share/doc/parrot-0.8.2/examples/tutorial/50_goto.pir
+ /usr/share/doc/parrot-0.8.2/examples/tutorial/51_if_unless.pir
+ /usr/share/doc/parrot-0.8.2/examples/tutorial/52_if_compare.pir
+ /usr/share/doc/parrot-0.8.2/examples/tutorial/53_loop.pir
+ /usr/share/doc/parrot-0.8.2/examples/tutorial/55_iterator.pir
+ /usr/share/doc/parrot-0.8.2/examples/tutorial/56_defined.pir
+ /usr/share/doc/parrot-0.8.2/examples/tutorial/57_exists.pir
+ /usr/share/doc/parrot-0.8.2/examples/tutorial/60_subroutines.pir
+ /usr/share/doc/parrot-0.8.2/examples/tutorial/61_namespaces.pir
+ /usr/share/doc/parrot-0.8.2/examples/tutorial/62_namespaces.pir
+ /usr/share/doc/parrot-0.8.2/examples/tutorial/70_class_object.pir
+ /usr/share/doc/parrot-0.8.2/examples/tutorial/80_closure.pir
+ /usr/share/doc/parrot-0.8.2/examples/tutorial/81_continuation.pir
+ /usr/share/doc/parrot-0.8.2/examples/tutorial/82_coroutine.pir
+ /usr/share/doc/parrot-0.8.2/examples/tutorial/83_external_libraries.pir
+ /usr/share/doc/parrot-0.8.2/examples/tutorial/90_writing_tests.pir
+ /usr/share/emacs/site-lisp/parrot.el
+ /usr/share/emacs/site-lisp/parrot.README
+ /usr/share/emacs/site-lisp/pasm.el
+ /usr/share/emacs/site-lisp/pir-mode.el
+ /usr/share/man/man1/parrot.1.gz
+ /usr/share/man/man1/parrot_debugger.1.gz
+ /usr/share/man/man1/pbc_disassemble.1.gz
+ /usr/share/man/man1/pbc_info.1.gz
+ /usr/share/man/man1/pbc_merge.1.gz
+ /usr/share/man/man1/pbc_to_exe.1.gz
+ /usr/share/vim/vimfiles/ftplugin/parrot.vim
+ /usr/share/vim/vimfiles/syntax/pasm.vim
+ /usr/share/vim/vimfiles/syntax/pir.vim
+ /usr/share/vim/vimfiles/syntax/pmc.vim
Files included in the =libparrot0= package:
- /usr/bin/cygparrot0_7_1.dll
+ /usr/bin/cygparrot0.8.2.dll
Files included in the =libparrot-devel= package:
+ /usr/bin/parrot-config
+ /usr/include/parrot.h
+ /usr/include/parrot/atomic.h
/usr/include/parrot/atomic/fallback.h
/usr/include/parrot/atomic/gcc_pcc.h
/usr/include/parrot/atomic/gcc_x86.h
/usr/include/parrot/atomic/sparc.h
- /usr/include/parrot/atomic.h
+ /usr/include/parrot/builtin.h
/usr/include/parrot/caches.h
/usr/include/parrot/cclass.h
/usr/include/parrot/charset.h
@@ -690,7 +658,7 @@
/usr/include/parrot/config.h
/usr/include/parrot/core_pmcs.h
/usr/include/parrot/datatypes.h
- /usr/include/parrot/debugger.h
+ /usr/include/parrot/debug.h
/usr/include/parrot/dod.h
/usr/include/parrot/dynext.h
/usr/include/parrot/embed.h
@@ -705,13 +673,13 @@
/usr/include/parrot/feature.h
/usr/include/parrot/global.h
/usr/include/parrot/global_setup.h
- /usr/include/parrot/hash.h
/usr/include/parrot/has_header.h
+ /usr/include/parrot/hash.h
/usr/include/parrot/headers.h
/usr/include/parrot/hll.h
/usr/include/parrot/imcc.h
- /usr/include/parrot/interpreter.h
/usr/include/parrot/inter_call.h
+ /usr/include/parrot/interpreter.h
/usr/include/parrot/intlist.h
/usr/include/parrot/io.h
/usr/include/parrot/jit_emit.h
@@ -726,15 +694,14 @@
/usr/include/parrot/oo.h
/usr/include/parrot/oo_private.h
/usr/include/parrot/op.h
+ /usr/include/parrot/oplib.h
/usr/include/parrot/oplib/core_ops.h
/usr/include/parrot/oplib/core_ops_cg.h
/usr/include/parrot/oplib/core_ops_cgp.h
/usr/include/parrot/oplib/core_ops_switch.h
/usr/include/parrot/oplib/ops.h
- /usr/include/parrot/oplib.h
/usr/include/parrot/packfile.h
/usr/include/parrot/parrot.h
- /usr/include/parrot/pbcversion.h
/usr/include/parrot/pic.h
/usr/include/parrot/platform.h
/usr/include/parrot/platform_interface.h
@@ -756,9 +723,9 @@
/usr/include/parrot/string_primitives.h
/usr/include/parrot/string_private_cstring.h
/usr/include/parrot/sub.h
- /usr/include/parrot/thread.h
/usr/include/parrot/thr_pthread.h
/usr/include/parrot/thr_windows.h
+ /usr/include/parrot/thread.h
/usr/include/parrot/tsq.h
/usr/include/parrot/vtable.h
/usr/include/parrot/vtables.h
@@ -770,7 +737,6 @@
/usr/lib/parrot/include/errors.pasm
/usr/lib/parrot/include/except_severity.pasm
/usr/lib/parrot/include/except_types.pasm
- /usr/lib/parrot/include/fp_equality.pasm
/usr/lib/parrot/include/hllmacros.pir
/usr/lib/parrot/include/iglobals.pasm
/usr/lib/parrot/include/interpcores.pasm
@@ -802,39 +768,12 @@
/usr/lib/parrot/src/ops/core_ops_switch.c
/usr/lib/parrot/src/parrot_config.o
/usr/lib/pkgconfig/parrot.pc
- /usr/share/doc/parrot-0.7.1/DEPRECATED.html
- /usr/share/doc/parrot-0.7.1/PBC_COMPAT
- /usr/share/doc/parrot-0.7.1/docs/dev/byteorder.pod
- /usr/share/doc/parrot-0.7.1/docs/dev/debugging_with_msvc.pod
- /usr/share/doc/parrot-0.7.1/docs/dev/headerizer.pod
- /usr/share/doc/parrot-0.7.1/docs/dev/jit_i386.pod
- /usr/share/doc/parrot-0.7.1/docs/dev/longopt.pod
- /usr/share/doc/parrot-0.7.1/docs/dev/optimizer.pod
- /usr/share/doc/parrot-0.7.1/docs/dev/parrot_api.pod
- /usr/share/doc/parrot-0.7.1/docs/dev/pccmethods.pod
- /usr/share/doc/parrot-0.7.1/docs/dev/pcc_state.pod
- /usr/share/doc/parrot-0.7.1/docs/dev/pmc_obj_design_meeting_notes.pod
- /usr/share/doc/parrot-0.7.1/docs/dev/seatbelts.pod
- /usr/share/doc/parrot-0.7.1/docs/project/cage_cleaners_guide.pod
- /usr/share/doc/parrot-0.7.1/docs/project/committer_guide.pod
- /usr/share/doc/parrot-0.7.1/docs/project/debian_packaging_guide.pod
- /usr/share/doc/parrot-0.7.1/docs/project/metacommitter_guide.pod
- /usr/share/doc/parrot-0.7.1/docs/project/pause_guide.pod
- /usr/share/doc/parrot-0.7.1/docs/project/release_manager_guide.pod
- /usr/share/doc/parrot-0.7.1/docs/project/roles_responsibilities.pod
- /usr/share/doc/parrot-0.7.1/docs/project/ticket_wrangler_guide.pod
Files included in the =parrot-perl6= package:
/usr/bin/perl6.exe
/usr/lib/parrot/dynext/perl6_group.dll
- /usr/share/doc/parrot-0.7.1/languages/perl6/compiler_overview.pod
- /usr/share/doc/parrot-0.7.1/languages/perl6/glossary.pod
- /usr/share/doc/parrot-0.7.1/languages/perl6/MAINTAINER
- /usr/share/doc/parrot-0.7.1/languages/perl6/README
- /usr/share/doc/parrot-0.7.1/languages/perl6/spectest-progress.csv
- /usr/share/doc/parrot-0.7.1/languages/perl6/STATUS
- /usr/share/man/man1/perl6.1.gz
+ /usr/share/doc/parrot-0.8.2/languages/perl6/*
Files included in the =parrot-languages= package:
@@ -846,80 +785,56 @@
/usr/bin/parrot-c99.exe
/usr/bin/parrot-cardinal.exe
/usr/bin/parrot-chitchat.exe
- /usr/bin/parrot-eclectus.exe
- /usr/bin/parrot-ecmascript.exe
/usr/bin/parrot-forth.exe
/usr/bin/parrot-hq9plus.exe
- /usr/bin/parrot-json.exe
- /usr/bin/parrot-lazy-k.exe
/usr/bin/parrot-lisp.exe
/usr/bin/parrot-lolcode.exe
/usr/bin/parrot-lua.exe
/usr/bin/parrot-m4.exe
- /usr/bin/parrot-markdown.exe
/usr/bin/parrot-ook.exe
/usr/bin/parrot-pheme.exe
/usr/bin/parrot-pipp.exe
/usr/bin/parrot-punie.exe
/usr/bin/parrot-pynie.exe
/usr/bin/parrot-squaak.exe
- /usr/bin/parrot-tclsh.exe
- /usr/bin/parrot-unlambda.exe
- /usr/bin/parrot-wmls2pbc.exe
- /usr/bin/parrot-wmls2pir.exe
- /usr/bin/parrot-wmlsd.exe
- /usr/bin/parrot-wmlsi.exe
+ /usr/bin/parrot-tcl.exe
/usr/lib/parrot/dynext/apl_group.dll
+ /usr/lib/parrot/dynext/eclectus_group.dll
/usr/lib/parrot/dynext/dotnet.dll
/usr/lib/parrot/dynext/dotnet_ops.dll
/usr/lib/parrot/dynext/dotnet_ops_cg.dll
/usr/lib/parrot/dynext/dotnet_ops_cgp.dll
/usr/lib/parrot/dynext/dotnet_ops_switch.dll
/usr/lib/parrot/dynext/dotnet_runtime.dll
- /usr/lib/parrot/dynext/eclectus_group.dll
/usr/lib/parrot/dynext/lua_group.dll
- /usr/lib/parrot/dynext/php_group.dll
/usr/lib/parrot/dynext/tcl_group.dll
- /usr/lib/parrot/dynext/tcl_ops.dll
- /usr/lib/parrot/dynext/tcl_ops_cg.dll
- /usr/lib/parrot/dynext/tcl_ops_cgp.dll
- /usr/lib/parrot/dynext/tcl_ops_switch.dll
/usr/lib/parrot/dynext/wmls_group.dll
/usr/lib/parrot/dynext/wmls_ops.dll
/usr/lib/parrot/dynext/wmls_ops_cg.dll
/usr/lib/parrot/dynext/wmls_ops_cgp.dll
/usr/lib/parrot/dynext/wmls_ops_switch.dll
- /usr/lib/parrot/library/php_ctype.pbc
- /usr/lib/parrot/library/php_gmp.pbc
- /usr/lib/parrot/library/php_pcre.pbc
+ /usr/lib/parrot/library/php_*.pbc
/usr/lib/parrot/library/pipplib.pbc
/usr/lib/parrot/library/tcllib.pbc
- /usr/share/doc/parrot-0.7.1/languages/*
- /usr/share/man/man1/parrot-APL.1.gz
- /usr/share/man/man1/parrot-abc.1.gz
- /usr/share/man/man1/parrot-c99.1.gz
- /usr/share/man/man1/parrot-cardinal.1.gz
- /usr/share/man/man1/parrot-chitchat.1.gz
- /usr/share/man/man1/parrot-cpp.1.gz
- /usr/share/man/man1/parrot-hq9plus.1.gz
- /usr/share/man/man1/parrot-json.1.gz
- /usr/share/man/man1/parrot-lisp.1.gz
- /usr/share/man/man1/parrot-lolcode.1.gz
- /usr/share/man/man1/parrot-lua.1.gz
- /usr/share/man/man1/parrot-pheme.1.gz
- /usr/share/man/man1/parrot-punie.1.gz
- /usr/share/man/man1/parrot-pynie.1.gz
- /usr/share/man/man1/parrot-squaak.1.gz
+ /usr/share/doc/parrot-0.8.2/languages/*
-------------------------------------------------------------------------------
Port Notes:
+----- version parrot-0.8.2-1 -----
+* merged from branches/pdd30install_stage3
+
+----- version parrot-0.8.0-1 -----
+* building and testing with already installed parrot supported
+* includes the patches from 0.7.1-1, plus
+* a merge from the branch pdd30_install, without the languages/jvm
+
----- version parrot-0.7.1-1 -----
* building with already installed parrot now supported, testing not.
* includes the patches from 0.7.0-1, plus
* a merge from the branch cygwin070patches,
-* without the languages/jvm
+ without the languages/jvm
----- version parrot-0.7.0-1 -----
* removed /usr/runtime and its preremove and postinstall scripts
@@ -937,9 +852,7 @@
[perl #56998] [TODO] rename cygwin dll to cygparrot$MAJOR_$MINOR_$PATCH.dll
[perl #57006] [PATCH] add cygwin opengl config quirks
[perl #57296] [TODO] make install -C languages
-* removed m4,
-* fixed force, pipp, perl6, pheme, tcl installables. added pcbc's to library
-* not working: pheme
+* fixed pipp, perl6, pheme, tcl installables. added pcbc's to library
----- version parrot-0.6.4-2 -----
* fixed invalid parrot languages and perl6 paths referencing the build_dir
@@ -974,4 +887,3 @@
Cygwin port maintained by: Reini Urban <rurban@x-ray.at>
Please address all questions to the Cygwin mailing list
at <cygwin@cygwin.com>
-
Added: trunk/ports/cygwin/parrot-0.8.2-1.cygport
==============================================================================
--- (empty file)
+++ trunk/ports/cygwin/parrot-0.8.2-1.cygport Wed Dec 31 10:51:37 2008
@@ -0,0 +1,268 @@
+# -*- sh -*-
+DESCRIPTION="Parrot Virtual Machine"
+HOMEPAGE="http://www.parrotcode.org/"
+# The release managers change with every release. Check this link
+#SRC_URI=$(lwp-request -m HEAD -x -e "http://www.parrotcode.org/release/devel" 2>&1 | grep "/authors/id" | tail -n1 | perl -ane 'print $F[2]')
+# or since 0.8.2 at:
+SRC_URI="ftp://ftp.parrot.org/pub/${PN}/releases/devel/${PV}/${PN}-${PV}.tar.gz"
+# SRC_DIR="parrot-${PV}"
+LICENSE="Artistic2"
+DIFF_EXCLUDES="MANIFEST.* parrot.pc myconfig config_lib.pasm Makefile TAGS"
+DLLVER=$(echo $PV|sed -e's,\.,_,g')
+
+PKG_NAMES="${PN} lib${PN}0 lib${PN}-devel ${PN}-perl6 ${PN}-languages"
+PKG_HINTS="${PKG_NAMES}"
+
+parrot_exists_check() {
+ for d in /usr/local/lib/parrot /usr/local/include/parrot \
+ /usr/include/parrot /usr/lib/parrot \
+ /usr/lib/libparrot.dll.a /usr/local/lib/libparrot.dll.a
+ do
+ if [ -e $d ]; then
+ echo "Testing with $d is brave and might not work"
+# echo "Testing with $d is not yet supported! Remove or rename first"
+# exit
+ fi
+ done
+}
+
+src_compile() {
+ cd ${B}
+ parrot_exists_check
+
+ test -e Configure.pl || lndirs
+ test -e config_lib.pasm && make realclean
+
+ # stable by irc:#parrot
+ lang_stable="abc cardinal eclectus lolcode perl6 pipp punie pynie squaak"
+ # 100% ok by make smoke
+ lang_alltests_ok="bf regex unlambda"
+ perl Configure.pl --prefix=/usr --optimize --mandir=/usr/share/man
+ # -Ddoc_dir=/usr/share/doc/${P} needs to be patched for cygwin.
+ # cygwin-1.7 will have this changed.
+ sed -e"s,/usr/share/doc/parrot\",/usr/share/doc/${P}\"," -i config_lib.pasm
+
+ cygmake all parrot_utils perl6.exe
+
+ cat >>myconfig <<EOF
+ Locally applied patches:
+ [perl #39742] [BUG] installed conflict
+ [perl #51944] [DOCS] Cygwin Readme
+ [perl #56544] [PATCH] install_files.pl
+ [perl #56998] [PATCH] rename cygwin dll to cygparrot$MAJOR_$MINOR_$PATCH.dll
+ [perl #57006] [PATCH] add cygwin opengl config quirks
+ [perl #56554] [TODO] make install -C languages
+ [perl #58034] [TODO] config_args
+ [perl #56996] [TODO] FHS runtime paths
+ [perl #57548] [TODO] CONDITIONED_LINE_enh
+EOF
+
+ # Build executables for the other languages.
+ cygmake languages
+
+ cygmake -C editor
+
+}
+
+src_check () {
+ cd ${B}
+ parrot_exists_check
+
+ cygtest
+ cygmake test spectest_regression -C languages/perl6
+ cygmake languages-smoke
+
+}
+
+src_install () {
+ cd ${B}
+ parrot_exists_check
+ man1=${D}/usr/share/man/man1
+ mkdir -p $man1
+
+ # already in core now
+ make reallyinstall DESTDIR=${D} DOC_DIR="/usr/share/doc/${P}"
+
+ #cygmake installable_perl6.exe -C languages/perl6
+ rm $man1/parrot-perl6.1
+
+ cd ${B}
+ #mkdir languages/bin
+ for dir in languages/* ; do
+ lang=$( basename $dir )
+ [ $lang = parrot_compiler ] && continue
+ if [ ! -f $lang -a -d $dir -a -f $dir/${lang}.pbc ] ; then
+ cd languages/$lang
+ make installable || ../../pbc_to_exe ${lang}.pbc --install
+ make install DESTDIR=${D} DOC_DIR="/usr/share/doc/${P}"
+ # TODO: do some standalone testing with renamed builddir
+ #test -e ${lang}.pir -a ! -e $man1/parrot-${lang}.1 && pod2man ${lang}.pir > $man1/parrot-${lang}.1
+ #test -e installable_${lang}.exe && cp installable_${lang}.exe ../bin/parrot-${lang}.exe
+ cd ${B}
+ fi
+ done
+ cd ${B}
+
+ # said who? gentoo or freebsd
+ insinto /usr/lib/${PN}
+ # now fix the wrong build_dir in the pbc_to_exe files
+ sed -e"s,\"${B}\",\"/usr\"," -e"s,-L${B}/blib/lib,," \
+ -e"s,/usr/share/doc/parrot\",/usr/share/doc/${P}\"," \
+ < config_lib.pasm > ${D}/usr/lib/${PN}/config_lib.pasm
+ # sed -e"s,\"-L${B}/blib/lib,\"," -i config_lib.pasm
+ # sed -e"s,$B,/usr/lib/${PN}," -i config_lib.pasm
+ doins myconfig VERSION parrotbug
+
+ exeinto /usr/bin
+ doexe parrot_config.exe cygparrot${DLLVER}.dll
+ #cp languages/perl6/installable_perl6.exe ${D}/usr/bin/perl6.exe
+
+ insinto /usr/lib
+ doins libparrot.dll.a
+
+ insinto /usr/lib/parrot/library
+ doins runtime/parrot/library/config.pir
+ insinto /usr/lib/parrot/include
+ doins runtime/parrot/include/config.fpmc runtime/parrot/include/interpinfo.pasm
+
+ # necessary for mod_parrot-0.3
+ insinto /usr/lib/${PN}/src/
+ doins "${B}/src/install_config.o" "${B}/src/null_config.o" "${B}/src/parrot_config.o"
+
+ insinto /usr/include/parrot
+ doins ${B}/include/parrot/pbcversion.h
+
+ pod2html DEPRECATED.pod > DEPRECATED.html
+ dodoc README RESPONSIBLE_PARTIES ABI_CHANGES ChangeLog CREDITS NEWS README_cygwin.pod \
+ DONORS.pod PLATFORMS TODO PBC_COMPAT DEPRECATED.html languages\LANGUAGES_STATUS.pod
+
+ # editor support (make vim-install installs into ~/.vim/)
+ insinto /usr/share/emacs/site-lisp
+ doins ${B}/editor/*.el
+ pod2text ${B}/editor/README.pod > ${D}/usr/share/emacs/site-lisp/parrot.README
+ # put this into ~/.vim/ or to the global vim dirs?
+ insinto /usr/share/vim/vimfiles/syntax
+ doins ${B}/editor/pir.vim ${B}/editor/pasm.vim ${B}/editor/pmc.vim
+ mkdir -p ${D}/usr/share/vim/vimfiles/ftplugin
+ cp ${B}/editor/filetype_parrot.vim ${D}/usr/share/vim/vimfiles/ftplugin/parrot.vim
+ # TODO: put this via postinstall into ~/.vim/
+ #mkdir -p ${D}/etc/defaults/.vim
+ #cp ${B}/editor/skeleton.pir ${D}/etc/defaults/.vim/
+
+ # man(1) for the main binaries
+ man1=${D}/usr/share/man/man1
+ pod2man docs/running.pod > $man1/parrot.1
+ pod2man src/parrot_debugger.c > $man1/parrot_debugger.1
+ pod2man src/pbc_disassemble.c > $man1/pbc_disassemble.1
+ pod2man src/pbc_info.c > $man1/pbc_info.1
+ pod2man src/pbc_merge.c > $man1/pbc_merge.1
+ pod2man pbc_to_exe.pir > $man1/pbc_to_exe.1
+ pod2man languages/perl6/perl6.pir > $man1/perl6.1
+
+ # Language examples and docs
+ for dir in languages/* ; do
+ test \! -d $dir && continue
+ lang=$( basename $dir )
+ [ $lang = parrot_compiler ] && continue
+ [ $lang = t ] && continue
+
+ cd languages/$lang
+ docinto languages/$lang
+ dodoc MAINTAINER README Changes ChangeLog CREDITS
+ #test -e $lang.pir && pod2man $lang.pir > $man1/parrot-$lang.1
+ test -d docs && dodoc docs/*
+
+ test -d examples && (insinto /usr/share/doc/${P}/languages/${lang}/examples; doins examples/*)
+ cd ${B}
+ done
+ # not yet ready
+ rm $man1/parrot-forth.1
+ cd $man1
+ for f in *.1; do gzip $f; done
+ cd ${B}
+}
+
+# parrot
+PKG_CONTENTS[0]=" \
+--exclude=usr/bin/cygparrot${DLLVER}.dll \
+--exclude=usr/include \
+--exclude=usr/bin/perl6.exe \
+--exclude=usr/bin/parrot-* \
+--exclude=usr/lib/parrot/dynext/apl_*.dll \
+--exclude=usr/lib/parrot/dynext/dotnet*.dll \
+--exclude=usr/lib/parrot/dynext/eclectus_*.dll \
+--exclude=usr/lib/parrot/dynext/lua_*.dll \
+--exclude=usr/lib/parrot/dynext/perl6_*.dll \
+--exclude=usr/lib/parrot/dynext/php_*.dll \
+--exclude=usr/lib/parrot/dynext/wmls_*.dll \
+--exclude=usr/lib/parrot/library/php_*.pbc \
+--exclude=usr/lib/parrot/library/pipplib.pbc \
+--exclude=usr/lib/parrot/library/P6object.pbc \
+--exclude=usr/share/doc/${P}/languages \
+--exclude=usr/share/doc/${P}/docs/dev \
+--exclude=usr/share/doc/${P}/docs/project \
+--exclude=usr/share/doc/${P}/DEPRECATED.html \
+--exclude=usr/share/doc/${P}/PBC_COMPAT \
+--exclude=usr/share/man/man1/parrot-*1.gz \
+--exclude=usr/share/man/man1/perl6.1.gz \
+usr/bin \
+usr/share \
+usr/lib/parrot/config_lib.pasm \
+usr/lib/parrot/myconfig \
+usr/lib/parrot/parrotbug \
+usr/lib/parrot/VERSION \
+usr/lib/parrot/dynext \
+usr/lib/parrot/library \
+usr/lib/parrot/include/interpinfo.pasm \
+usr/lib/parrot/include/config.fpmc \
+"
+
+# libparrot0
+PKG_CONTENTS[1]=" \
+usr/bin/cygparrot${DLLVER}.dll"
+
+# libparrot-devel
+PKG_CONTENTS[2]=" \
+--exclude=usr/lib/parrot/dynext \
+--exclude=usr/lib/parrot/library \
+--exclude=usr/lib/parrot/config_lib.pasm \
+--exclude=usr/lib/parrot/myconfig \
+--exclude=usr/lib/parrot/parrotbug \
+--exclude=usr/lib/parrot/VERSION \
+--exclude=usr/lib/parrot/include/interpinfo.pasm \
+--exclude=usr/lib/parrot/include/config.fpmc \
+usr/include \
+usr/lib \
+usr/share/doc/${P}/DEPRECATED.html \
+usr/share/doc/${P}/PBC_COMPAT \
+usr/share/doc/${P}/docs/dev \
+usr/share/doc/${P}/docs/project \
+"
+
+# parrot-perl6
+PKG_CONTENTS[3]=" \
+usr/bin/perl6.exe \
+usr/lib/parrot/library/P6object.pbc \
+usr/lib/parrot/dynext/perl6_*.dll \
+usr/share/doc/${P}/languages/perl6 \
+usr/share/man/man1/perl6.1.gz \
+"
+
+# parrot-languages
+PKG_CONTENTS[4]=" \
+--exclude=usr/share/doc/${P}/languages/perl6 \
+usr/bin/parrot-*.exe \
+usr/lib/parrot/dynext/apl_*.dll \
+usr/lib/parrot/dynext/dotnet*.dll \
+usr/lib/parrot/dynext/eclectus_*.dll \
+usr/lib/parrot/dynext/php_*.dll \
+usr/lib/parrot/dynext/wmls_*.dll \
+usr/lib/parrot/library/php_*.pbc \
+usr/lib/parrot/library/pipplib.pbc \
+usr/share/doc/${P}/languages \
+usr/share/man/man1/parrot-*1.gz \
+"
+
+#broken:
+#usr/lib/parrot/dynext/lua_*.dll \
+
Added: trunk/ports/cygwin/parrot-0.8.2-1.cygwin.patch
==============================================================================
--- (empty file)
+++ trunk/ports/cygwin/parrot-0.8.2-1.cygwin.patch Wed Dec 31 10:51:37 2008
@@ -0,0 +1,934 @@
+--- origsrc/parrot-0.8.2/CYGWIN-PATCHES/README 1970-01-01 00:00:00.000000000 +0000
++++ src/parrot-0.8.2/CYGWIN-PATCHES/README 2008-12-29 16:21:33.115375000 +0000
+@@ -0,0 +1,889 @@
++parrot
++----------------------------------
++Parrot is a virtual machine designed to efficiently compile and
++execute bytecode for interpreted languages. Parrot is a target for Perl 6
++and a lot of other languages.
++
++Runtime requirements:
++ libparrot0 libreadline6 libncurses8 libintl8 libicu38 libgmp3 libgdbm4
++
++Optional requirements:
++ w32api pcre libpq5 openssl
++
++Build requirements:
++ readline libncurses-devel libicu-devel libgmp-devel libgdbm-devel perl
++ make gcc
++
++Optional build requirements:
++ pcre-devel openssl-devel
++
++Optional test packages:
++ perl L<Test::TAP::HTMLMatrix> if you want to run the language
++ smoke tests with C<make languages-smoke>.
++ perl L<Test::Base> for some APL language tests.
++ perl L<Moose> for smartlink
++ perl L<Test::Perl::Critic> and L<Perl::Critic>
++
++Canonical homepage:
++ http://www.parrotcode.org/
++
++Canonical download:
++ http://www.parrotcode.org/release/devel
++
++-------------------------------------------------------------------------------
++
++Build instructions:
++
++ cd /usr/src
++ cygport parrot-<VER>-<REL>.cygport all
++
++This will create:
++ /usr/src/parrot-<VER>-<REL>-src.tar.bz2
++ /usr/src/parrot-<VER>-<REL>.tar.bz2
++ /usr/src/libparrot0-<VER>-<REL>.tar.bz2
++ /usr/src/libparrot-devel-<VER>-<REL>.tar.bz2
++ /usr/src/parrot-perl6-<VER>-<REL>.tar.bz2
++ /usr/src/parrot-languages-<VER>-<REL>.tar.bz2
++
++Or use 'cygport parrot-<VER>-<REL>.cygport prep' to get a patched
++source directory.
++
++-------------------------------------------------------------------------------
++
++Files included in the =parrot= package:
++
++ /etc/postinstall/parrot.sh
++ /etc/preremove/parrot.sh
++ /usr/bin/parrot.exe
++ /usr/bin/parrot_config.exe
++ /usr/bin/parrot_debugger.exe
++ /usr/bin/pbc_info.exe
++ /usr/bin/pbc_merge.exe
++ /usr/bin/pbc_to_exe.exe
++ /usr/bin/pdump.exe
++ /usr/lib/parrot/config_lib.pasm
++ /usr/lib/parrot/myconfig
++ /usr/lib/parrot/parrotbug
++ /usr/lib/parrot/VERSION
++ /usr/lib/parrot/dynext/digest_group.dll
++ /usr/lib/parrot/dynext/dynlexpad.dll
++ /usr/lib/parrot/dynext/gdbmhash.dll
++ /usr/lib/parrot/dynext/libglutcb.dll
++ /usr/lib/parrot/dynext/libnci_test.dll
++ /usr/lib/parrot/dynext/match_group.dll
++ /usr/lib/parrot/dynext/rational.dll
++ /usr/lib/parrot/dynext/subproxy.dll
++ /usr/lib/parrot/include/interpinfo.pasm
++ /usr/lib/parrot/include/config.fpmc
++ /usr/lib/parrot/library/CGI/QueryHash.pbc
++ /usr/lib/parrot/library/CGI/QueryHash.pir
++ /usr/lib/parrot/library/Config/JSON.pir
++ /usr/lib/parrot/library/Crow.pir
++ /usr/lib/parrot/library/Data/Dumper.pbc
++ /usr/lib/parrot/library/Data/Dumper.pir
++ /usr/lib/parrot/library/Data/Dumper/Base.pbc
++ /usr/lib/parrot/library/Data/Dumper/Base.pir
++ /usr/lib/parrot/library/Data/Dumper/Default.pbc
++ /usr/lib/parrot/library/Data/Dumper/Default.pir
++ /usr/lib/parrot/library/Data/Escape.pbc
++ /usr/lib/parrot/library/Data/Escape.pir
++ /usr/lib/parrot/library/Data/Replace.pir
++ /usr/lib/parrot/library/Data/Sort.pbc
++ /usr/lib/parrot/library/Data/Sort.pir
++ /usr/lib/parrot/library/Digest/MD5.pir
++ /usr/lib/parrot/library/File/Spec.pir
++ /usr/lib/parrot/library/File/Spec/Unix.pir
++ /usr/lib/parrot/library/File/Spec/Win32.pir
++ /usr/lib/parrot/library/Getopt/Obj.pbc
++ /usr/lib/parrot/library/Getopt/Obj.pir
++ /usr/lib/parrot/library/HTTP/Daemon.pir
++ /usr/lib/parrot/library/Iter.pir
++ /usr/lib/parrot/library/JSON.pir
++ /usr/lib/parrot/library/MIME/Base64.pbc
++ /usr/lib/parrot/library/MIME/Base64.pir
++ /usr/lib/parrot/library/Math/Random/mt19937ar.pir
++ /usr/lib/parrot/library/NCI/call_toolkit_init.pbc
++ /usr/lib/parrot/library/NCI/call_toolkit_init.pir
++ /usr/lib/parrot/library/OpenGL.pbc
++ /usr/lib/parrot/library/OpenGL.pir
++ /usr/lib/parrot/library/OpenGL_funcs.pir
++ /usr/lib/parrot/library/P6object.pbc
++ /usr/lib/parrot/library/P6object.pir
++ /usr/lib/parrot/library/PCT.pbc
++ /usr/lib/parrot/library/PCT/Grammar.pbc
++ /usr/lib/parrot/library/PCT/HLLCompiler.pbc
++ /usr/lib/parrot/library/PCT/PAST.pbc
++ /usr/lib/parrot/library/PCT/README
++ /usr/lib/parrot/library/PGE.pbc
++ /usr/lib/parrot/library/PGE/Dumper.pbc
++ /usr/lib/parrot/library/PGE/Dumper.pir
++ /usr/lib/parrot/library/PGE/Glob.pbc
++ /usr/lib/parrot/library/PGE/Glob.pir
++ /usr/lib/parrot/library/PGE/Hs.pir
++ /usr/lib/parrot/library/PGE/Perl6Grammar.pir
++ /usr/lib/parrot/library/PGE/Text.pbc
++ /usr/lib/parrot/library/PGE/Text.pir
++ /usr/lib/parrot/library/PGE/Util.pbc
++ /usr/lib/parrot/library/PGE/Util.pir
++ /usr/lib/parrot/library/Parrot/Capture_PIR.pbc
++ /usr/lib/parrot/library/Parrot/Capture_PIR.pir
++ /usr/lib/parrot/library/Parrot/Coroutine.pbc
++ /usr/lib/parrot/library/Parrot/Coroutine.pir
++ /usr/lib/parrot/library/Parrot/Exception.pbc
++ /usr/lib/parrot/library/Parrot/Exception.pir
++ /usr/lib/parrot/library/Pg.pir
++ /usr/lib/parrot/library/Protoobject.pbc
++ /usr/lib/parrot/library/Protoobject.pir
++ /usr/lib/parrot/library/Range.pir
++ /usr/lib/parrot/library/SDL.pir
++ /usr/lib/parrot/library/SDL/App.pir
++ /usr/lib/parrot/library/SDL/Button.pir
++ /usr/lib/parrot/library/SDL/Color.pir
++ /usr/lib/parrot/library/SDL/Constants.pir
++ /usr/lib/parrot/library/SDL/Event.pir
++ /usr/lib/parrot/library/SDL/EventHandler.pir
++ /usr/lib/parrot/library/SDL/Font.pir
++ /usr/lib/parrot/library/SDL/Image.pir
++ /usr/lib/parrot/library/SDL/LCD.pir
++ /usr/lib/parrot/library/SDL/LCD.png
++ /usr/lib/parrot/library/SDL/Rect.pir
++ /usr/lib/parrot/library/SDL/Sprite.pir
++ /usr/lib/parrot/library/SDL/StopWatch.pir
++ /usr/lib/parrot/library/SDL/Surface.pir
++ /usr/lib/parrot/library/STM.pir
++ /usr/lib/parrot/library/Stream/Base.pbc
++ /usr/lib/parrot/library/Stream/Base.pir
++ /usr/lib/parrot/library/Stream/Combiner.pbc
++ /usr/lib/parrot/library/Stream/Combiner.pir
++ /usr/lib/parrot/library/Stream/Coroutine.pbc
++ /usr/lib/parrot/library/Stream/Coroutine.pir
++ /usr/lib/parrot/library/Stream/Filter.pbc
++ /usr/lib/parrot/library/Stream/Filter.pir
++ /usr/lib/parrot/library/Stream/Lines.pbc
++ /usr/lib/parrot/library/Stream/Lines.pir
++ /usr/lib/parrot/library/Stream/ParrotIO.pbc
++ /usr/lib/parrot/library/Stream/ParrotIO.pir
++ /usr/lib/parrot/library/Stream/Replay.pbc
++ /usr/lib/parrot/library/Stream/Replay.pir
++ /usr/lib/parrot/library/Stream/Sub.pbc
++ /usr/lib/parrot/library/Stream/Sub.pir
++ /usr/lib/parrot/library/Stream/Writer.pbc
++ /usr/lib/parrot/library/Stream/Writer.pir
++ /usr/lib/parrot/library/String/Utils.pir
++ /usr/lib/parrot/library/TGE.pbc
++ /usr/lib/parrot/library/Tcl/Glob.pir
++ /usr/lib/parrot/library/Test/Builder.pir
++ /usr/lib/parrot/library/Test/Builder/Output.pir
++ /usr/lib/parrot/library/Test/Builder/Test.pir
++ /usr/lib/parrot/library/Test/Builder/TestPlan.pir
++ /usr/lib/parrot/library/Test/Builder/Tester.pir
++ /usr/lib/parrot/library/Test/Class.pir
++ /usr/lib/parrot/library/Test/More.pir
++ /usr/lib/parrot/library/YAML/Dumper.pir
++ /usr/lib/parrot/library/YAML/Dumper/Base.pir
++ /usr/lib/parrot/library/YAML/Dumper/Default.pir
++ /usr/lib/parrot/library/YAML/Parser/Syck.pir
++ /usr/lib/parrot/library/dumper.pbc
++ /usr/lib/parrot/library/dumper.pir
++ /usr/lib/parrot/library/libpcre.pir
++ /usr/lib/parrot/library/ncurses.declarations
++ /usr/lib/parrot/library/ncurses.pasm
++ /usr/lib/parrot/library/ncurses.pbc
++ /usr/lib/parrot/library/ncurses.pir
++ /usr/lib/parrot/library/parrotlib.pbc
++ /usr/lib/parrot/library/parrotlib.pir
++ /usr/lib/parrot/library/pcore.pir
++ /usr/lib/parrot/library/pcre.pbc
++ /usr/lib/parrot/library/pcre.pir
++ /usr/lib/parrot/library/postgres.declarations
++ /usr/lib/parrot/library/postgres.pasm
++ /usr/lib/parrot/library/postgres.pir
++ /usr/lib/parrot/library/random_lib.pir
++ /usr/lib/parrot/library/tcpstream.pir
++ /usr/lib/parrot/library/uuid.pir
++ /usr/lib/parrot/library/yaml_dumper.pir
++ /usr/share/doc/parrot-0.8.2/LICENSE
++ /usr/share/doc/parrot-0.8.2/RESPONSIBLE_PARTIES
++ /usr/share/doc/parrot-0.8.2/TODO
++ /usr/share/doc/parrot-0.8.2/docs/art/pp001-intro.pod
++ /usr/share/doc/parrot-0.8.2/docs/art/pp002-pmc.pod
++ /usr/share/doc/parrot-0.8.2/docs/art/pp003-oop.pod
++ /usr/share/doc/parrot-0.8.2/docs/book/appendix.pod
++ /usr/share/doc/parrot-0.8.2/docs/book/ch01_overview.pod
++ /usr/share/doc/parrot-0.8.2/docs/book/ch02_getting_started.pod
++ /usr/share/doc/parrot-0.8.2/docs/book/ch03_pir_basics.pod
++ /usr/share/doc/parrot-0.8.2/docs/book/ch04_pir_subroutines.pod
++ /usr/share/doc/parrot-0.8.2/docs/book/ch05_pasm.pod
++ /usr/share/doc/parrot-0.8.2/docs/book/ch06_testing.pod
++ /usr/share/doc/parrot-0.8.2/docs/book/ch07_architecture.pod
++ /usr/share/doc/parrot-0.8.2/docs/book/ch08_reference.pod
++ /usr/share/doc/parrot-0.8.2/docs/book/figs/p6e_0801.png
++ /usr/share/doc/parrot-0.8.2/docs/debugger.pod
++ /usr/share/doc/parrot-0.8.2/docs/dev/byteorder.pod
++ /usr/share/doc/parrot-0.8.2/docs/dev/debugging_with_msvc.pod
++ /usr/share/doc/parrot-0.8.2/docs/dev/headerizer.pod
++ /usr/share/doc/parrot-0.8.2/docs/dev/jit_i386.pod
++ /usr/share/doc/parrot-0.8.2/docs/dev/longopt.pod
++ /usr/share/doc/parrot-0.8.2/docs/dev/optimizer.pod
++ /usr/share/doc/parrot-0.8.2/docs/dev/parrot_api.pod
++ /usr/share/doc/parrot-0.8.2/docs/dev/pcc_state.pod
++ /usr/share/doc/parrot-0.8.2/docs/dev/pccmethods.pod
++ /usr/share/doc/parrot-0.8.2/docs/dev/pmc_obj_design_meeting_notes.pod
++ /usr/share/doc/parrot-0.8.2/docs/dev/seatbelts.pod
++ /usr/share/doc/parrot-0.8.2/docs/embed.pod
++ /usr/share/doc/parrot-0.8.2/docs/extend.pod
++ /usr/share/doc/parrot-0.8.2/docs/faq.pod
++ /usr/share/doc/parrot-0.8.2/docs/gettingstarted.pod
++ /usr/share/doc/parrot-0.8.2/docs/glossary.pod
++ /usr/share/doc/parrot-0.8.2/docs/imcc/README
++ /usr/share/doc/parrot-0.8.2/docs/imcc/imcfaq.pod
++ /usr/share/doc/parrot-0.8.2/docs/imcc/operation.pod
++ /usr/share/doc/parrot-0.8.2/docs/intro.pod
++ /usr/share/doc/parrot-0.8.2/docs/jit.pod
++ /usr/share/doc/parrot-0.8.2/docs/memory_internals.pod
++ /usr/share/doc/parrot-0.8.2/docs/mmd.pod
++ /usr/share/doc/parrot-0.8.2/docs/native_exec.pod
++ /usr/share/doc/parrot-0.8.2/docs/ops/bit.pod
++ /usr/share/doc/parrot-0.8.2/docs/ops/cmp.pod
++ /usr/share/doc/parrot-0.8.2/docs/ops/core.pod
++ /usr/share/doc/parrot-0.8.2/docs/ops/debug.pod
++ /usr/share/doc/parrot-0.8.2/docs/ops/experimental.pod
++ /usr/share/doc/parrot-0.8.2/docs/ops/io.pod
++ /usr/share/doc/parrot-0.8.2/docs/ops/math.pod
++ /usr/share/doc/parrot-0.8.2/docs/ops/object.pod
++ /usr/share/doc/parrot-0.8.2/docs/ops/obscure.pod
++ /usr/share/doc/parrot-0.8.2/docs/ops/pic.pod
++ /usr/share/doc/parrot-0.8.2/docs/ops/pmc.pod
++ /usr/share/doc/parrot-0.8.2/docs/ops/set.pod
++ /usr/share/doc/parrot-0.8.2/docs/ops/string.pod
++ /usr/share/doc/parrot-0.8.2/docs/ops/sys.pod
++ /usr/share/doc/parrot-0.8.2/docs/ops/var.pod
++ /usr/share/doc/parrot-0.8.2/docs/optable.pod
++ /usr/share/doc/parrot-0.8.2/docs/overview.pod
++ /usr/share/doc/parrot-0.8.2/docs/parrot.pod
++ /usr/share/doc/parrot-0.8.2/docs/parrotbyte.pod
++ /usr/share/doc/parrot-0.8.2/docs/parrothist.pod
++ /usr/share/doc/parrot-0.8.2/docs/pct/gettingstarted.pod
++ /usr/share/doc/parrot-0.8.2/docs/pct/past_building_blocks.pod
++ /usr/share/doc/parrot-0.8.2/docs/pct/pct_optable_guide.pod
++ /usr/share/doc/parrot-0.8.2/docs/pdds/README
++ /usr/share/doc/parrot-0.8.2/docs/pdds/draft/pdd01_overview.pod
++ /usr/share/doc/parrot-0.8.2/docs/pdds/draft/pdd04_datatypes.pod
++ /usr/share/doc/parrot-0.8.2/docs/pdds/draft/pdd05_opfunc.pod
++ /usr/share/doc/parrot-0.8.2/docs/pdds/draft/pdd06_pasm.pod
++ /usr/share/doc/parrot-0.8.2/docs/pdds/draft/pdd08_keys.pod
++ /usr/share/doc/parrot-0.8.2/docs/pdds/draft/pdd10_embedding.pod
++ /usr/share/doc/parrot-0.8.2/docs/pdds/draft/pdd11_extending.pod
++ /usr/share/doc/parrot-0.8.2/docs/pdds/draft/pdd14_bignum.pod
++ /usr/share/doc/parrot-0.8.2/docs/pdds/draft/pdd16_native_call.pod
++ /usr/share/doc/parrot-0.8.2/docs/pdds/draft/pdd19_pir.pod
++ /usr/share/doc/parrot-0.8.2/docs/pdds/draft/pdd29_compiler_tools.pod
++ /usr/share/doc/parrot-0.8.2/docs/pdds/draft/pdd30_install.pod
++ /usr/share/doc/parrot-0.8.2/docs/pdds/pdd00_pdd.pod
++ /usr/share/doc/parrot-0.8.2/docs/pdds/pdd03_calling_conventions.pod
++ /usr/share/doc/parrot-0.8.2/docs/pdds/pdd07_codingstd.pod
++ /usr/share/doc/parrot-0.8.2/docs/pdds/pdd09_gc.pod
++ /usr/share/doc/parrot-0.8.2/docs/pdds/pdd13_bytecode.pod
++ /usr/share/doc/parrot-0.8.2/docs/pdds/pdd15_object_metamodel.png
++ /usr/share/doc/parrot-0.8.2/docs/pdds/pdd15_object_metamodel.svg
++ /usr/share/doc/parrot-0.8.2/docs/pdds/pdd15_objects.pod
++ /usr/share/doc/parrot-0.8.2/docs/pdds/pdd17_pmc.pod
++ /usr/share/doc/parrot-0.8.2/docs/pdds/pdd18_security.pod
++ /usr/share/doc/parrot-0.8.2/docs/pdds/pdd20_lexical_vars.pod
++ /usr/share/doc/parrot-0.8.2/docs/pdds/pdd21_namespaces.pod
++ /usr/share/doc/parrot-0.8.2/docs/pdds/pdd22_io.pod
++ /usr/share/doc/parrot-0.8.2/docs/pdds/pdd23_exceptions.pod
++ /usr/share/doc/parrot-0.8.2/docs/pdds/pdd24_events.pod
++ /usr/share/doc/parrot-0.8.2/docs/pdds/pdd25_concurrency.pod
++ /usr/share/doc/parrot-0.8.2/docs/pdds/pdd26_ast.pod
++ /usr/share/doc/parrot-0.8.2/docs/pdds/pdd27_multiple_dispatch.pod
++ /usr/share/doc/parrot-0.8.2/docs/pdds/pdd28_strings.pod
++ /usr/share/doc/parrot-0.8.2/docs/pdds/pdd_template.pod
++ /usr/share/doc/parrot-0.8.2/docs/pmc.pod
++ /usr/share/doc/parrot-0.8.2/docs/pmc/array.pod
++ /usr/share/doc/parrot-0.8.2/docs/pmc/documentation.pod
++ /usr/share/doc/parrot-0.8.2/docs/pmc/struct.pod
++ /usr/share/doc/parrot-0.8.2/docs/pmc/subs.pod
++ /usr/share/doc/parrot-0.8.2/docs/pmc2c.pod
++ /usr/share/doc/parrot-0.8.2/docs/porting_intro.pod
++ /usr/share/doc/parrot-0.8.2/docs/project/cage_cleaners_guide.pod
++ /usr/share/doc/parrot-0.8.2/docs/project/committer_guide.pod
++ /usr/share/doc/parrot-0.8.2/docs/project/debian_packaging_guide.pod
++ /usr/share/doc/parrot-0.8.2/docs/project/metacommitter_guide.pod
++ /usr/share/doc/parrot-0.8.2/docs/project/pause_guide.pod
++ /usr/share/doc/parrot-0.8.2/docs/project/release_manager_guide.pod
++ /usr/share/doc/parrot-0.8.2/docs/project/roles_responsibilities.pod
++ /usr/share/doc/parrot-0.8.2/docs/project/ticket_wrangler_guide.pod
++ /usr/share/doc/parrot-0.8.2/docs/req/model_users.pod
++ /usr/share/doc/parrot-0.8.2/docs/resources/favicon.ico
++ /usr/share/doc/parrot-0.8.2/docs/resources/parrot_small.png
++ /usr/share/doc/parrot-0.8.2/docs/resources/perl.css
++ /usr/share/doc/parrot-0.8.2/docs/resources/up.gif
++ /usr/share/doc/parrot-0.8.2/docs/running.pod
++ /usr/share/doc/parrot-0.8.2/docs/stability.pod
++ /usr/share/doc/parrot-0.8.2/docs/stm/atomic.pod
++ /usr/share/doc/parrot-0.8.2/docs/stm/howto.pod
++ /usr/share/doc/parrot-0.8.2/docs/stm/internals.pod
++ /usr/share/doc/parrot-0.8.2/docs/stm/stm_frontend.pod
++ /usr/share/doc/parrot-0.8.2/docs/stm/thread-issues.pod
++ /usr/share/doc/parrot-0.8.2/docs/submissions.pod
++ /usr/share/doc/parrot-0.8.2/docs/tests.pod
++ /usr/share/doc/parrot-0.8.2/docs/vtables.pod
++ /usr/share/doc/parrot-0.8.2/examples/README
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/addit.pasm
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/addit.pir
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/addit.pl
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/addit.rb
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/addit2.pir
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/array_access.pir
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/arriter.pir
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/arriter.pl
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/arriter.rb
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/arriter_o1.pir
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/bench_newp.pasm
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/fib.pir
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/fib.pl
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/fib.py
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/fib.rb
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/float4.pir
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/freeze.pasm
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/freeze.pl
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/gc_alloc_new.pasm
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/gc_alloc_reuse.pasm
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/gc_generations.pasm
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/gc_header_new.pasm
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/gc_header_reuse.pasm
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/gc_waves_headers.pasm
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/gc_waves_sizeable_data.pasm
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/gc_waves_sizeable_headers.pasm
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/mops.pasm
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/mops.pl
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/mops_intval.pasm
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo1.pasm
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo1.pl
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo1.py
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo1.rb
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo2.pasm
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo2.pl
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo2.py
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo2.rb
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo3.pasm
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo3.pl
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo3.py
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo3.rb
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo4.pasm
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo4.pl
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo4.py
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo4.rb
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo5.pir
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo5.pl
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo5.py
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo5.rb
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo6.pir
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo6.pl
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo6.py
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oo6.rb
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oofib.pir
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oofib.pl
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oofib.py
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oofib.rb
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/oon.txt
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/overload.pir
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/overload.pl
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/primes.c
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/primes.pasm
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/primes.pl
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/primes2.c
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/primes2.pir
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/primes2.pl
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/primes2.py
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/primes2.rb
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/primes2_i.pir
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/primes_i.pasm
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/shared_ref.pasm
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/shared_ref.pl
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/stress.pasm
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/stress.pl
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/stress.rb
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/stress1.pasm
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/stress1.pl
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/stress2.pasm
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/stress2.pl
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/stress2.rb
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/stress3.pasm
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/vpm.pir
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/vpm.pl
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/vpm.py
++ /usr/share/doc/parrot-0.8.2/examples/benchmarks/vpm.rb
++ /usr/share/doc/parrot-0.8.2/examples/c/nanoparrot.c
++ /usr/share/doc/parrot-0.8.2/examples/c/test_main.c
++ /usr/share/doc/parrot-0.8.2/examples/compilers/Makefile
++ /usr/share/doc/parrot-0.8.2/examples/compilers/japhc.c
++ /usr/share/doc/parrot-0.8.2/examples/io/async_select.pir
++ /usr/share/doc/parrot-0.8.2/examples/io/echo_client.pir
++ /usr/share/doc/parrot-0.8.2/examples/io/http.pir
++ /usr/share/doc/parrot-0.8.2/examples/io/httpd.pir
++ /usr/share/doc/parrot-0.8.2/examples/io/httpd2.pir
++ /usr/share/doc/parrot-0.8.2/examples/io/net_smtp.pasm
++ /usr/share/doc/parrot-0.8.2/examples/io/pioctl.pasm
++ /usr/share/doc/parrot-0.8.2/examples/io/pipe2.pir
++ /usr/share/doc/parrot-0.8.2/examples/io/pipe3.pir
++ /usr/share/doc/parrot-0.8.2/examples/japh/README
++ /usr/share/doc/parrot-0.8.2/examples/japh/japh1.pasm
++ /usr/share/doc/parrot-0.8.2/examples/japh/japh2.pasm
++ /usr/share/doc/parrot-0.8.2/examples/japh/japh3.pasm
++ /usr/share/doc/parrot-0.8.2/examples/japh/japh4.pasm
++ /usr/share/doc/parrot-0.8.2/examples/japh/japh5.pasm
++ /usr/share/doc/parrot-0.8.2/examples/library/acorn.l
++ /usr/share/doc/parrot-0.8.2/examples/library/getopt_demo.pir
++ /usr/share/doc/parrot-0.8.2/examples/library/md5sum.pir
++ /usr/share/doc/parrot-0.8.2/examples/library/ncurses_life.pir
++ /usr/share/doc/parrot-0.8.2/examples/library/pcre.pir
++ /usr/share/doc/parrot-0.8.2/examples/mops/README
++ /usr/share/doc/parrot-0.8.2/examples/mops/mops.c
++ /usr/share/doc/parrot-0.8.2/examples/mops/mops.cs
++ /usr/share/doc/parrot-0.8.2/examples/mops/mops.il
++ /usr/share/doc/parrot-0.8.2/examples/mops/mops.p6
++ /usr/share/doc/parrot-0.8.2/examples/mops/mops.pl
++ /usr/share/doc/parrot-0.8.2/examples/mops/mops.ps
++ /usr/share/doc/parrot-0.8.2/examples/mops/mops.py
++ /usr/share/doc/parrot-0.8.2/examples/mops/mops.rb
++ /usr/share/doc/parrot-0.8.2/examples/mops/mops.scheme
++ /usr/share/doc/parrot-0.8.2/examples/namespace/namespace_dump.pir
++ /usr/share/doc/parrot-0.8.2/examples/nci/PQt.C
++ /usr/share/doc/parrot-0.8.2/examples/nci/QtHelloWorld.pasm
++ /usr/share/doc/parrot-0.8.2/examples/nci/ls.pir
++ /usr/share/doc/parrot-0.8.2/examples/nci/sdl_blue_rectangle.pir
++ /usr/share/doc/parrot-0.8.2/examples/nci/win32api.pir
++ /usr/share/doc/parrot-0.8.2/examples/opengl/shapes.pir
++ /usr/share/doc/parrot-0.8.2/examples/opengl/triangle.pir
++ /usr/share/doc/parrot-0.8.2/examples/pasm/cat.pasm
++ /usr/share/doc/parrot-0.8.2/examples/pasm/fact.pasm
++ /usr/share/doc/parrot-0.8.2/examples/pasm/hello.pasm
++ /usr/share/doc/parrot-0.8.2/examples/pasm/nanoforth.pasm
++ /usr/share/doc/parrot-0.8.2/examples/pasm/nanoforth2.pasm
++ /usr/share/doc/parrot-0.8.2/examples/pasm/small.xml
++ /usr/share/doc/parrot-0.8.2/examples/pasm/trace.pasm
++ /usr/share/doc/parrot-0.8.2/examples/pasm/xml_parser.pasm
++ /usr/share/doc/parrot-0.8.2/examples/past/01-sub.pir
++ /usr/share/doc/parrot-0.8.2/examples/past/blocktype_immediate.pir
++ /usr/share/doc/parrot-0.8.2/examples/past/four_plus_one.pir
++ /usr/share/doc/parrot-0.8.2/examples/pge/README
++ /usr/share/doc/parrot-0.8.2/examples/pge/TAP_grammar.pg
++ /usr/share/doc/parrot-0.8.2/examples/pge/benchmarks/ambs1/Makefile
++ /usr/share/doc/parrot-0.8.2/examples/pge/benchmarks/ambs1/ambs1.pg
++ /usr/share/doc/parrot-0.8.2/examples/pge/benchmarks/ambs1/main.pir
++ /usr/share/doc/parrot-0.8.2/examples/pge/benchmarks/ambs1/mktestcase
++ /usr/share/doc/parrot-0.8.2/examples/pge/grammars/IO.pg
++ /usr/share/doc/parrot-0.8.2/examples/pge/grammars/PatchGrammar.pg
++ /usr/share/doc/parrot-0.8.2/examples/pge/simple.pir
++ /usr/share/doc/parrot-0.8.2/examples/pir/circle.pir
++ /usr/share/doc/parrot-0.8.2/examples/pir/euclid.pir
++ /usr/share/doc/parrot-0.8.2/examples/pir/hanoi.pir
++ /usr/share/doc/parrot-0.8.2/examples/pir/hello-dwim.pir
++ /usr/share/doc/parrot-0.8.2/examples/pir/io.pir
++ /usr/share/doc/parrot-0.8.2/examples/pir/levenshtein.pir
++ /usr/share/doc/parrot-0.8.2/examples/pir/life.pir
++ /usr/share/doc/parrot-0.8.2/examples/pir/local_label.pir
++ /usr/share/doc/parrot-0.8.2/examples/pir/mandel.pir
++ /usr/share/doc/parrot-0.8.2/examples/pir/queens_r.pir
++ /usr/share/doc/parrot-0.8.2/examples/pir/quine_ord.pir
++ /usr/share/doc/parrot-0.8.2/examples/pir/readline.pir
++ /usr/share/doc/parrot-0.8.2/examples/pir/substr.pir
++ /usr/share/doc/parrot-0.8.2/examples/pir/sudoku.pir
++ /usr/share/doc/parrot-0.8.2/examples/pir/thr-primes.pir
++ /usr/share/doc/parrot-0.8.2/examples/pir/uniq.pir
++ /usr/share/doc/parrot-0.8.2/examples/sdl/blue_rect.pl
++ /usr/share/doc/parrot-0.8.2/examples/sdl/mandel.pir
++ /usr/share/doc/parrot-0.8.2/examples/sdl/minesweeper/README
++ /usr/share/doc/parrot-0.8.2/examples/sdl/minesweeper/eventhandler.pir
++ /usr/share/doc/parrot-0.8.2/examples/sdl/minesweeper/field.pir
++ /usr/share/doc/parrot-0.8.2/examples/sdl/minesweeper/mines.pir
++ /usr/share/doc/parrot-0.8.2/examples/sdl/minesweeper/mines.png
++ /usr/share/doc/parrot-0.8.2/examples/sdl/minesweeper/mines_debug.png
++ /usr/share/doc/parrot-0.8.2/examples/sdl/minesweeper/smiley.png
++ /usr/share/doc/parrot-0.8.2/examples/sdl/tetris/README
++ /usr/share/doc/parrot-0.8.2/examples/sdl/tetris/app.pir
++ /usr/share/doc/parrot-0.8.2/examples/sdl/tetris/block.pir
++ /usr/share/doc/parrot-0.8.2/examples/sdl/tetris/blockdata.pir
++ /usr/share/doc/parrot-0.8.2/examples/sdl/tetris/blocks.pir
++ /usr/share/doc/parrot-0.8.2/examples/sdl/tetris/board.pir
++ /usr/share/doc/parrot-0.8.2/examples/sdl/tetris/boarddata.pir
++ /usr/share/doc/parrot-0.8.2/examples/sdl/tetris/eventhandler.pir
++ /usr/share/doc/parrot-0.8.2/examples/sdl/tetris/tetris.pir
++ /usr/share/doc/parrot-0.8.2/examples/shootout/README
++ /usr/share/doc/parrot-0.8.2/examples/shootout/ack.pir
++ /usr/share/doc/parrot-0.8.2/examples/shootout/ack.pir_output
++ /usr/share/doc/parrot-0.8.2/examples/shootout/ack.py
++ /usr/share/doc/parrot-0.8.2/examples/shootout/binarytrees.pir
++ /usr/share/doc/parrot-0.8.2/examples/shootout/binarytrees.pir_output
++ /usr/share/doc/parrot-0.8.2/examples/shootout/fannkuch.pir
++ /usr/share/doc/parrot-0.8.2/examples/shootout/fannkuch.pir_output
++ /usr/share/doc/parrot-0.8.2/examples/shootout/fannkuch.py
++ /usr/share/doc/parrot-0.8.2/examples/shootout/fasta.pir
++ /usr/share/doc/parrot-0.8.2/examples/shootout/fasta.pir_output
++ /usr/share/doc/parrot-0.8.2/examples/shootout/harmonic.pir
++ /usr/share/doc/parrot-0.8.2/examples/shootout/knucleotide.pir
++ /usr/share/doc/parrot-0.8.2/examples/shootout/knucleotide.pir_input
++ /usr/share/doc/parrot-0.8.2/examples/shootout/knucleotide.pir_output
++ /usr/share/doc/parrot-0.8.2/examples/shootout/mandelbrot.pir
++ /usr/share/doc/parrot-0.8.2/examples/shootout/mandelbrot.pir_output
++ /usr/share/doc/parrot-0.8.2/examples/shootout/nbody.pir
++ /usr/share/doc/parrot-0.8.2/examples/shootout/nbody.pir_output
++ /usr/share/doc/parrot-0.8.2/examples/shootout/nsieve-bits-2.pir
++ /usr/share/doc/parrot-0.8.2/examples/shootout/nsieve-bits-2.pir_output
++ /usr/share/doc/parrot-0.8.2/examples/shootout/nsieve-bits.pir
++ /usr/share/doc/parrot-0.8.2/examples/shootout/nsieve-bits.pir_output
++ /usr/share/doc/parrot-0.8.2/examples/shootout/nsieve.pir
++ /usr/share/doc/parrot-0.8.2/examples/shootout/nsieve.pir_output
++ /usr/share/doc/parrot-0.8.2/examples/shootout/partialsums-2.pir
++ /usr/share/doc/parrot-0.8.2/examples/shootout/partialsums-2.pir_output
++ /usr/share/doc/parrot-0.8.2/examples/shootout/partialsums.pir
++ /usr/share/doc/parrot-0.8.2/examples/shootout/partialsums.pir_output
++ /usr/share/doc/parrot-0.8.2/examples/shootout/pidigits.pir
++ /usr/share/doc/parrot-0.8.2/examples/shootout/pidigits.pir_output
++ /usr/share/doc/parrot-0.8.2/examples/shootout/pidigits.py
++ /usr/share/doc/parrot-0.8.2/examples/shootout/random.pasm
++ /usr/share/doc/parrot-0.8.2/examples/shootout/random.pir
++ /usr/share/doc/parrot-0.8.2/examples/shootout/recursive-2.pir
++ /usr/share/doc/parrot-0.8.2/examples/shootout/recursive-2.pir_output
++ /usr/share/doc/parrot-0.8.2/examples/shootout/recursive.pir
++ /usr/share/doc/parrot-0.8.2/examples/shootout/recursive.pir_output
++ /usr/share/doc/parrot-0.8.2/examples/shootout/regexdna.pir
++ /usr/share/doc/parrot-0.8.2/examples/shootout/regexdna.pir_input
++ /usr/share/doc/parrot-0.8.2/examples/shootout/regexdna.pir_output
++ /usr/share/doc/parrot-0.8.2/examples/shootout/revcomp.pir
++ /usr/share/doc/parrot-0.8.2/examples/shootout/revcomp.pir_input
++ /usr/share/doc/parrot-0.8.2/examples/shootout/revcomp.pir_output
++ /usr/share/doc/parrot-0.8.2/examples/shootout/spectralnorm.pir
++ /usr/share/doc/parrot-0.8.2/examples/shootout/spectralnorm.pir_output
++ /usr/share/doc/parrot-0.8.2/examples/shootout/sumcol.pir
++ /usr/share/doc/parrot-0.8.2/examples/shootout/sumcol.pir_input
++ /usr/share/doc/parrot-0.8.2/examples/shootout/sumcol.pir_output
++ /usr/share/doc/parrot-0.8.2/examples/shootout/takfp.pir
++ /usr/share/doc/parrot-0.8.2/examples/shootout/takfp.pir_output
++ /usr/share/doc/parrot-0.8.2/examples/streams/Bytes.pir
++ /usr/share/doc/parrot-0.8.2/examples/streams/Combiner.pir
++ /usr/share/doc/parrot-0.8.2/examples/streams/Coroutine.pir
++ /usr/share/doc/parrot-0.8.2/examples/streams/FileLines.pir
++ /usr/share/doc/parrot-0.8.2/examples/streams/Filter.pir
++ /usr/share/doc/parrot-0.8.2/examples/streams/Include.pir
++ /usr/share/doc/parrot-0.8.2/examples/streams/Lines.pir
++ /usr/share/doc/parrot-0.8.2/examples/streams/ParrotIO.pir
++ /usr/share/doc/parrot-0.8.2/examples/streams/Replay.pir
++ /usr/share/doc/parrot-0.8.2/examples/streams/SubCounter.pir
++ /usr/share/doc/parrot-0.8.2/examples/streams/SubHello.pir
++ /usr/share/doc/parrot-0.8.2/examples/streams/Writer.pir
++ /usr/share/doc/parrot-0.8.2/examples/subs/bsr_ret.pasm
++ /usr/share/doc/parrot-0.8.2/examples/subs/coroutine.pasm
++ /usr/share/doc/parrot-0.8.2/examples/subs/jsr_ret.pasm
++ /usr/share/doc/parrot-0.8.2/examples/subs/multi_retvals.pir
++ /usr/share/doc/parrot-0.8.2/examples/subs/no_retval.pir
++ /usr/share/doc/parrot-0.8.2/examples/subs/pasm_sub1.pasm
++ /usr/share/doc/parrot-0.8.2/examples/subs/single_retval.pir
++ /usr/share/doc/parrot-0.8.2/examples/tge/README
++ /usr/share/doc/parrot-0.8.2/examples/tge/branch/branch.g
++ /usr/share/doc/parrot-0.8.2/examples/tge/branch/lib/Branch.pir
++ /usr/share/doc/parrot-0.8.2/examples/tge/branch/lib/Leaf.pir
++ /usr/share/doc/parrot-0.8.2/examples/tge/branch/transform.pir
++ /usr/share/doc/parrot-0.8.2/examples/tutorial/00_README.pod
++ /usr/share/doc/parrot-0.8.2/examples/tutorial/01_temp_var.pir
++ /usr/share/doc/parrot-0.8.2/examples/tutorial/02_local_var.pir
++ /usr/share/doc/parrot-0.8.2/examples/tutorial/03_temp_var_basic_pmcs.pir
++ /usr/share/doc/parrot-0.8.2/examples/tutorial/04_pod_comments.pir
++ /usr/share/doc/parrot-0.8.2/examples/tutorial/10_math_ops.pir
++ /usr/share/doc/parrot-0.8.2/examples/tutorial/11_math_ops_self_mod.pir
++ /usr/share/doc/parrot-0.8.2/examples/tutorial/12_math_ops_pasm.pir
++ /usr/share/doc/parrot-0.8.2/examples/tutorial/13_logical_ops.pir
++ /usr/share/doc/parrot-0.8.2/examples/tutorial/20_string_ops.pir
++ /usr/share/doc/parrot-0.8.2/examples/tutorial/21_string_ops_repeat.pir
++ /usr/share/doc/parrot-0.8.2/examples/tutorial/22_string_ops_length.pir
++ /usr/share/doc/parrot-0.8.2/examples/tutorial/23_string_ops_substr.pir
++ /usr/share/doc/parrot-0.8.2/examples/tutorial/24_string_ops_clone.pir
++ /usr/share/doc/parrot-0.8.2/examples/tutorial/30_arrays_basic.pir
++ /usr/share/doc/parrot-0.8.2/examples/tutorial/31_array_ops_split.pir
++ /usr/share/doc/parrot-0.8.2/examples/tutorial/32_array_ops_sprintf.pir
++ /usr/share/doc/parrot-0.8.2/examples/tutorial/33_hashes.pir
++ /usr/share/doc/parrot-0.8.2/examples/tutorial/34_multikey.pir
++ /usr/share/doc/parrot-0.8.2/examples/tutorial/40_file_ops.pir
++ /usr/share/doc/parrot-0.8.2/examples/tutorial/50_goto.pir
++ /usr/share/doc/parrot-0.8.2/examples/tutorial/51_if_unless.pir
++ /usr/share/doc/parrot-0.8.2/examples/tutorial/52_if_compare.pir
++ /usr/share/doc/parrot-0.8.2/examples/tutorial/53_loop.pir
++ /usr/share/doc/parrot-0.8.2/examples/tutorial/55_iterator.pir
++ /usr/share/doc/parrot-0.8.2/examples/tutorial/56_defined.pir
++ /usr/share/doc/parrot-0.8.2/examples/tutorial/57_exists.pir
++ /usr/share/doc/parrot-0.8.2/examples/tutorial/60_subroutines.pir
++ /usr/share/doc/parrot-0.8.2/examples/tutorial/61_namespaces.pir
++ /usr/share/doc/parrot-0.8.2/examples/tutorial/62_namespaces.pir
++ /usr/share/doc/parrot-0.8.2/examples/tutorial/70_class_object.pir
++ /usr/share/doc/parrot-0.8.2/examples/tutorial/80_closure.pir
++ /usr/share/doc/parrot-0.8.2/examples/tutorial/81_continuation.pir
++ /usr/share/doc/parrot-0.8.2/examples/tutorial/82_coroutine.pir
++ /usr/share/doc/parrot-0.8.2/examples/tutorial/83_external_libraries.pir
++ /usr/share/doc/parrot-0.8.2/examples/tutorial/90_writing_tests.pir
++ /usr/share/emacs/site-lisp/parrot.el
++ /usr/share/emacs/site-lisp/parrot.README
++ /usr/share/emacs/site-lisp/pasm.el
++ /usr/share/emacs/site-lisp/pir-mode.el
++ /usr/share/man/man1/parrot.1.gz
++ /usr/share/man/man1/parrot_debugger.1.gz
++ /usr/share/man/man1/pbc_disassemble.1.gz
++ /usr/share/man/man1/pbc_info.1.gz
++ /usr/share/man/man1/pbc_merge.1.gz
++ /usr/share/man/man1/pbc_to_exe.1.gz
++ /usr/share/vim/vimfiles/ftplugin/parrot.vim
++ /usr/share/vim/vimfiles/syntax/pasm.vim
++ /usr/share/vim/vimfiles/syntax/pir.vim
++ /usr/share/vim/vimfiles/syntax/pmc.vim
++
++Files included in the =libparrot0= package:
++
++ /usr/bin/cygparrot0.8.2.dll
++
++Files included in the =libparrot-devel= package:
++
++ /usr/bin/parrot-config
++ /usr/include/parrot.h
++ /usr/include/parrot/atomic.h
++ /usr/include/parrot/atomic/fallback.h
++ /usr/include/parrot/atomic/gcc_pcc.h
++ /usr/include/parrot/atomic/gcc_x86.h
++ /usr/include/parrot/atomic/sparc.h
++ /usr/include/parrot/builtin.h
++ /usr/include/parrot/caches.h
++ /usr/include/parrot/cclass.h
++ /usr/include/parrot/charset.h
++ /usr/include/parrot/compiler.h
++ /usr/include/parrot/config.h
++ /usr/include/parrot/core_pmcs.h
++ /usr/include/parrot/datatypes.h
++ /usr/include/parrot/debug.h
++ /usr/include/parrot/dod.h
++ /usr/include/parrot/dynext.h
++ /usr/include/parrot/embed.h
++ /usr/include/parrot/encoding.h
++ /usr/include/parrot/enums.h
++ /usr/include/parrot/events.h
++ /usr/include/parrot/exceptions.h
++ /usr/include/parrot/exec.h
++ /usr/include/parrot/exit.h
++ /usr/include/parrot/extend.h
++ /usr/include/parrot/extend_vtable.h
++ /usr/include/parrot/feature.h
++ /usr/include/parrot/global.h
++ /usr/include/parrot/global_setup.h
++ /usr/include/parrot/has_header.h
++ /usr/include/parrot/hash.h
++ /usr/include/parrot/headers.h
++ /usr/include/parrot/hll.h
++ /usr/include/parrot/imcc.h
++ /usr/include/parrot/inter_call.h
++ /usr/include/parrot/interpreter.h
++ /usr/include/parrot/intlist.h
++ /usr/include/parrot/io.h
++ /usr/include/parrot/jit_emit.h
++ /usr/include/parrot/key.h
++ /usr/include/parrot/library.h
++ /usr/include/parrot/list.h
++ /usr/include/parrot/longopt.h
++ /usr/include/parrot/memory.h
++ /usr/include/parrot/misc.h
++ /usr/include/parrot/mmd.h
++ /usr/include/parrot/nci.h
++ /usr/include/parrot/oo.h
++ /usr/include/parrot/oo_private.h
++ /usr/include/parrot/op.h
++ /usr/include/parrot/oplib.h
++ /usr/include/parrot/oplib/core_ops.h
++ /usr/include/parrot/oplib/core_ops_cg.h
++ /usr/include/parrot/oplib/core_ops_cgp.h
++ /usr/include/parrot/oplib/core_ops_switch.h
++ /usr/include/parrot/oplib/ops.h
++ /usr/include/parrot/packfile.h
++ /usr/include/parrot/parrot.h
++ /usr/include/parrot/pic.h
++ /usr/include/parrot/platform.h
++ /usr/include/parrot/platform_interface.h
++ /usr/include/parrot/pmc.h
++ /usr/include/parrot/pmc_freeze.h
++ /usr/include/parrot/pobj.h
++ /usr/include/parrot/register.h
++ /usr/include/parrot/resources.h
++ /usr/include/parrot/scheduler.h
++ /usr/include/parrot/scheduler_private.h
++ /usr/include/parrot/settings.h
++ /usr/include/parrot/slice.h
++ /usr/include/parrot/smallobject.h
++ /usr/include/parrot/stacks.h
++ /usr/include/parrot/stat.h
++ /usr/include/parrot/stm/backend.h
++ /usr/include/parrot/string.h
++ /usr/include/parrot/string_funcs.h
++ /usr/include/parrot/string_primitives.h
++ /usr/include/parrot/string_private_cstring.h
++ /usr/include/parrot/sub.h
++ /usr/include/parrot/thr_pthread.h
++ /usr/include/parrot/thr_windows.h
++ /usr/include/parrot/thread.h
++ /usr/include/parrot/tsq.h
++ /usr/include/parrot/vtable.h
++ /usr/include/parrot/vtables.h
++ /usr/include/parrot/warnings.h
++ /usr/lib/libparrot.dll.a
++ /usr/lib/parrot/include/call_bits.pasm
++ /usr/lib/parrot/include/cclass.pasm
++ /usr/lib/parrot/include/datatypes.pasm
++ /usr/lib/parrot/include/errors.pasm
++ /usr/lib/parrot/include/except_severity.pasm
++ /usr/lib/parrot/include/except_types.pasm
++ /usr/lib/parrot/include/hllmacros.pir
++ /usr/lib/parrot/include/iglobals.pasm
++ /usr/lib/parrot/include/interpcores.pasm
++ /usr/lib/parrot/include/interpdebug.pasm
++ /usr/lib/parrot/include/interpflags.pasm
++ /usr/lib/parrot/include/interptrace.pasm
++ /usr/lib/parrot/include/iotypes.pasm
++ /usr/lib/parrot/include/iterator.pasm
++ /usr/lib/parrot/include/longopt.pasm
++ /usr/lib/parrot/include/mmd.pasm
++ /usr/lib/parrot/include/opengl_defines.pasm
++ /usr/lib/parrot/include/parrotlib.pbc
++ /usr/lib/parrot/include/pmctypes.pasm
++ /usr/lib/parrot/include/signal.pasm
++ /usr/lib/parrot/include/sockets.pasm
++ /usr/lib/parrot/include/stat.pasm
++ /usr/lib/parrot/include/stdio.pasm
++ /usr/lib/parrot/include/stringinfo.pasm
++ /usr/lib/parrot/include/sysinfo.pasm
++ /usr/lib/parrot/include/test_more.pir
++ /usr/lib/parrot/include/timer.pasm
++ /usr/lib/parrot/include/tm.pasm
++ /usr/lib/parrot/include/warnings.pasm
++ /usr/lib/parrot/src/glut_callbacks.c
++ /usr/lib/parrot/src/install_config.o
++ /usr/lib/parrot/src/nci.c
++ /usr/lib/parrot/src/null_config.o
++ /usr/lib/parrot/src/ops/core_ops_cgp.c
++ /usr/lib/parrot/src/ops/core_ops_switch.c
++ /usr/lib/parrot/src/parrot_config.o
++ /usr/lib/pkgconfig/parrot.pc
++
++Files included in the =parrot-perl6= package:
++
++ /usr/bin/perl6.exe
++ /usr/lib/parrot/dynext/perl6_group.dll
++ /usr/share/doc/parrot-0.8.2/languages/perl6/*
++
++Files included in the =parrot-languages= package:
++
++ /usr/bin/parrot-APL.exe
++ /usr/bin/parrot-abc.exe
++ /usr/bin/parrot-bf.exe
++ /usr/bin/parrot-bfc.exe
++ /usr/bin/parrot-bfco.exe
++ /usr/bin/parrot-c99.exe
++ /usr/bin/parrot-cardinal.exe
++ /usr/bin/parrot-chitchat.exe
++ /usr/bin/parrot-forth.exe
++ /usr/bin/parrot-hq9plus.exe
++ /usr/bin/parrot-lisp.exe
++ /usr/bin/parrot-lolcode.exe
++ /usr/bin/parrot-lua.exe
++ /usr/bin/parrot-m4.exe
++ /usr/bin/parrot-ook.exe
++ /usr/bin/parrot-pheme.exe
++ /usr/bin/parrot-pipp.exe
++ /usr/bin/parrot-punie.exe
++ /usr/bin/parrot-pynie.exe
++ /usr/bin/parrot-squaak.exe
++ /usr/bin/parrot-tcl.exe
++ /usr/lib/parrot/dynext/apl_group.dll
++ /usr/lib/parrot/dynext/eclectus_group.dll
++ /usr/lib/parrot/dynext/dotnet.dll
++ /usr/lib/parrot/dynext/dotnet_ops.dll
++ /usr/lib/parrot/dynext/dotnet_ops_cg.dll
++ /usr/lib/parrot/dynext/dotnet_ops_cgp.dll
++ /usr/lib/parrot/dynext/dotnet_ops_switch.dll
++ /usr/lib/parrot/dynext/dotnet_runtime.dll
++ /usr/lib/parrot/dynext/lua_group.dll
++ /usr/lib/parrot/dynext/tcl_group.dll
++ /usr/lib/parrot/dynext/wmls_group.dll
++ /usr/lib/parrot/dynext/wmls_ops.dll
++ /usr/lib/parrot/dynext/wmls_ops_cg.dll
++ /usr/lib/parrot/dynext/wmls_ops_cgp.dll
++ /usr/lib/parrot/dynext/wmls_ops_switch.dll
++ /usr/lib/parrot/library/php_*.pbc
++ /usr/lib/parrot/library/pipplib.pbc
++ /usr/lib/parrot/library/tcllib.pbc
++ /usr/share/doc/parrot-0.8.2/languages/*
++
++-------------------------------------------------------------------------------
++
++Port Notes:
++
++----- version parrot-0.8.2-1 -----
++* merged from branches/pdd30install_stage3
++
++----- version parrot-0.8.0-1 -----
++* building and testing with already installed parrot supported
++* includes the patches from 0.7.1-1, plus
++* a merge from the branch pdd30_install, without the languages/jvm
++
++----- version parrot-0.7.1-1 -----
++* building with already installed parrot now supported, testing not.
++* includes the patches from 0.7.0-1, plus
++* a merge from the branch cygwin070patches,
++ without the languages/jvm
++
++----- version parrot-0.7.0-1 -----
++* removed /usr/runtime and its preremove and postinstall scripts
++* added parrot_exists_check to .cygport. Already installed parrot
++ still not supported, despite my #39742 patch
++* other minor .cygport improvements: export PATH in seperate lines to fix check
++* new patches:
++ [perl #39742] [BUG] installed conflict
++ [perl #58034] [TODO] config_args
++ [perl #56996] [TODO] FHS runtime paths
++* enhanced patch:
++ [perl #56554] [TODO] make install -C languages
++* upstream fixed patches:
++ [perl #56544] [PATCH] install_files.pl
++ [perl #56998] [TODO] rename cygwin dll to cygparrot$MAJOR_$MINOR_$PATCH.dll
++ [perl #57006] [PATCH] add cygwin opengl config quirks
++ [perl #57296] [TODO] make install -C languages
++* fixed pipp, perl6, pheme, tcl installables. added pcbc's to library
++
++----- version parrot-0.6.4-2 -----
++* fixed invalid parrot languages and perl6 paths referencing the build_dir
++* fixed runtime lib_path to favor FHS compliant paths
++* temp. add a /usr/runtime symlink. will be removed soon
++* added myconfig parrotbug VERSION to /usr/lib/parrot
++* moved language dll's to parrot-languages
++* added more sublanguage exe's: bfc, bfco
++* added usr/lib/parrot/include/config.fpmc usr/lib/parrot/include/interpinfo.pasm
++ to parrot
++
++----- version parrot-0.6.4-1 -----
++* libparrot.dll renamed to cygparrot0_6_4.dll
++* moved examples to from libparrot-devel to parrot
++* Added list of local patches to myconfig
++ [perl #51944] [DOCS] Cygwin Readme
++ [perl #56544] [PATCH] install_files.pl
++ [perl #56558] [PATCH] pdb rename to parrot_debugger
++ [perl #56562] [PATCH] root.in: add cygwin importlib
++ [perl #56998] [TODO] rename cygwin dll to cygparrot$MAJOR_$MINOR_$PATCH.dll
++ [perl #57006] [PATCH] add cygwin opengl config quirks
++ [perl #57110] [PATCH] ncurses for cygwin
++ [perl #57112] [PATCH] postgres for cygwin
++ [perl #57114] [PATCH] urm RealBin issue
++
++----- version parrot-0.6.3-1 -----
++* first port, with the help from #parrot, fedora spec,
++ gentoo ebuild and freebsd ports.
++* the php implementation plumhead is still named plumhead.
++ will be renamed to pipp from the next release 0.6.4 on.
++
++Cygwin port maintained by: Reini Urban <rurban@x-ray.at>
++Please address all questions to the Cygwin mailing list
++at <cygwin@cygwin.com>
+--- origsrc/parrot-0.8.2/CYGWIN-PATCHES/libparrot-devel.hint 1970-01-01 00:00:00.000000000 +0000
++++ src/parrot-0.8.2/CYGWIN-PATCHES/libparrot-devel.hint 2008-12-24 18:31:58.397125000 +0000
+@@ -0,0 +1,5 @@
++sdesc: "Parrot Virtual Machine development headers and libraries"
++ldesc: "Libraries and headers needed for development against Parrot"
++category: Libs
++requires: parrot readline libncurses-devel libicu-devel libgmp-devel libgdbm-devel perl pcre-devel
++external-source: parrot
+--- origsrc/parrot-0.8.2/CYGWIN-PATCHES/libparrot0.hint 1970-01-01 00:00:00.000000000 +0000
++++ src/parrot-0.8.2/CYGWIN-PATCHES/libparrot0.hint 2008-12-24 18:31:58.397125000 +0000
+@@ -0,0 +1,4 @@
++sdesc: "libparrot dll"
++category: Libs
++external-source: parrot
++requires: libreadline6 libintl8 libicu38 libgmp3 libgdbm4
+--- origsrc/parrot-0.8.2/CYGWIN-PATCHES/parrot-languages.hint 1970-01-01 00:00:00.000000000 +0000
++++ src/parrot-0.8.2/CYGWIN-PATCHES/parrot-languages.hint 2008-12-24 18:31:58.397125000 +0000
+@@ -0,0 +1,6 @@
++sdesc: "Various language implementions on Parrot"
++ldesc: "parrot-APL parrot-abc parrot-bf parrot-c99 parrot-cardinal parrot-chitchat
++parrot-forth parrot-hq9plus parrot-lisp parrot-lolcode parrot-lua parrot-m4 parrot-ook
++parrot-pheme parrot-pipp parrot-punie parrot-pynie parrot-squaak parrot-tcl"
++category: Interpreters
++requires: parrot
+--- origsrc/parrot-0.8.2/CYGWIN-PATCHES/parrot-perl6.hint 1970-01-01 00:00:00.000000000 +0000
++++ src/parrot-0.8.2/CYGWIN-PATCHES/parrot-perl6.hint 2008-12-24 18:31:58.412750000 +0000
+@@ -0,0 +1,6 @@
++sdesc: "Rakudo Perl6 via Parrot"
++ldesc: "This is the Perl 6 compiler for Parrot, called 'Rakudo Perl 6,'
++or "Rakudo" for short. It's still fairly primitive -- only simple
++expressions and functions are available, but it's rapidly expanding."
++category: Libs
++requires: parrot
+--- origsrc/parrot-0.8.2/CYGWIN-PATCHES/parrot.hint 1970-01-01 00:00:00.000000000 +0000
++++ src/parrot-0.8.2/CYGWIN-PATCHES/parrot.hint 2008-12-24 18:31:58.412750000 +0000
+@@ -0,0 +1,6 @@
++sdesc: "Parrot Virtual Machine"
++ldesc: "Parrot is a virtual machine designed to efficiently compile and
++execute bytecode for interpreted languages. Parrot is a target for Perl 6
++and a lot of other languages"
++category: Interpreters
++requires: cygwin libparrot0 w32api opengl
Added: trunk/ports/cygwin/parrot-0.8.2-1.src.patch
==============================================================================
--- (empty file)
+++ trunk/ports/cygwin/parrot-0.8.2-1.src.patch Wed Dec 31 10:51:37 2008
@@ -0,0 +1,14175 @@
+--- origsrc/parrot-0.8.2/Configure.pl 2008-12-17 06:55:05.000000000 +0000
++++ src/parrot-0.8.2/Configure.pl 2008-12-25 13:44:20.006500000 +0000
+@@ -63,6 +63,8 @@
+
+ # from Parrot::Configure::Data
+ $conf->options->set( %{$args} );
++# save the command-line
++$conf->data->set(config_args => join(" ", @ARGV));
+
+ # Log files created by Configure.pl in MANIFEST.configure.generated
+ $conf->{active_configuration} = 1;
+--- origsrc/parrot-0.8.2/MANIFEST 2008-12-17 06:57:42.000000000 +0000
++++ src/parrot-0.8.2/MANIFEST 2008-12-25 13:44:20.037750000 +0000
+@@ -1095,6 +1095,10 @@
+ languages/PIR/t/whitespace.t [PIR]
+ languages/WMLScript/CREDITS [WMLScript]
+ languages/WMLScript/MAINTAINER [WMLScript]
++languages/WMLScript/WMLScript/wmlsconsole.pir [WMLScript]
++languages/WMLScript/WMLScript/wmlsfloat.pir [WMLScript]
++languages/WMLScript/WMLScript/wmlslang.pir [WMLScript]
++languages/WMLScript/WMLScript/wmlsstring.pir [WMLScript]
+ languages/WMLScript/build/SRM/Register.pm [WMLScript]
+ languages/WMLScript/build/SRM/Stack.pm [WMLScript]
+ languages/WMLScript/build/stdlibs.pl [WMLScript]
+@@ -1109,10 +1113,6 @@
+ languages/WMLScript/pmc/wmlsinteger.pmc [WMLScript]
+ languages/WMLScript/pmc/wmlsinvalid.pmc [WMLScript]
+ languages/WMLScript/pmc/wmlsstring.pmc [WMLScript]
+-languages/WMLScript/runtime/wmlsconsole.pir [WMLScript]
+-languages/WMLScript/runtime/wmlsfloat.pir [WMLScript]
+-languages/WMLScript/runtime/wmlslang.pir [WMLScript]
+-languages/WMLScript/runtime/wmlsstring.pir [WMLScript]
+ languages/WMLScript/src/WMLScript.pir [WMLScript]
+ languages/WMLScript/src/script.pir [WMLScript]
+ languages/WMLScript/src/translation.rules [WMLScript]
+--- origsrc/parrot-0.8.2/README_cygwin.pod 2008-06-01 09:08:35.000000000 +0000
++++ src/parrot-0.8.2/README_cygwin.pod 2008-12-25 13:44:20.037750000 +0000
+@@ -6,37 +6,98 @@
+
+ =head1 SYNOPSIS
+
+-Parrot builds out of the box under Cygwin. Some tweaks are needed for
+-different names of dynamic loading of some dll's.
++Parrot builds out of the box under Cygwin after
++C<export PATH=`pwd`/blib/lib:$PATH>
++
++There are official cygwin parrot packages available via
++L<http://cygwin.com/setup.exe>.
++
++ parrot libparrot0 libparrot-devel parrot-perl6 parrot-languages
++
++Some tweaks are needed for different names for the ffi to some dll's.
++See L</loadlib DLL versioning>
++
+
+ =head1 Packages
+
+-You'll need the following Cygwin packages to build Parrot.
++You'll need the following Cygwin packages to run and build Parrot
++by your own.
+
+-=over 4
++Runtime requirements:
++
++ libreadline6 ncurses libintl8 libgmp3 libgdbm4
++
++Optional requirements:
++
++ libicu38 libpq5 openssl
++
++ for opengl: w32api opengl or libglut3 xorg-x11-base xorg-x11-bin-dlls
++
++Build requirements:
++
++ gcc make perl parrot readline libncurses-devel libgmp-devel
++ libgdbm-devel pcre-devel
++
++Optional build requirements:
++
++ libicu-devel openssl-devel
++
++ for Cygwin/X opengl: freeglut libglut-devel xorg-x11-devel
++
++Optional perl packages for testing:
++
++ L<Test::TAP::HTMLMatrix> if you want to run the language smoke tests
++ with C<make languages-smoke>.
+
+-=item gcc
++ L<Test::Base> for some APL language tests.
+
+-=item make
++ perl L<Moose> for smartlink
+
+-=item perl
++ perl L<Test::Perl::Critic> and L<Perl::Critic>
+
+-=item subversion
++=over 4
++
++=item Cygwin subversion and perl
+
+ If you use SVN to get a copy of Parrot, you should use the Cygwin SVN
+ and not the TortoiseSVN client to avoid build errors. Similarly you will
+ need Cygwin Perl rather than ActiveState or Strawberry Perl.
+
+-=item ICU
+-
+-This is no official Cygwin package yet. However, icu4c-3_8 builds out of the
+-box on Cygwin.
+-
+- http://download.icu-project.org/files/icu4c/3.8/icu4c-3_8-src.tgz
++=item icu
+
+ Note that ICU is now optional, you can build Parrot without it,
+ by not installing it or asking Parrot to ignore it (C<--without-icu>).
+
++=item opengl
++
++You can use the w32api and opengl packages for native Windows opengl support,
++or the freeglut package for the X Server.
++
++Configure.pl will detect freeglut if freeglut is installed and DISPLAY
++is set, otherwise it checks for w32api and opengl with GLUT.
++
++ Determining if your platform supports OpenGL.............yes, freeglut 3.4.
++ Determining if your platform supports OpenGL...................yes, GLUT 3.
++ Determining if your platform supports OpenGL............................no.
++
++Required packages:
++
++ w32api opengl
++
++or
++
++ freeglut libglut-devel xorg-x11-devel xorg-x11-base xorg-x11-bin-dlls
++
++=item SDL
++
++SDL references F<cygSDL-1-2-0.dll>, which is only in cygports
++L<http://news.gmane.org/gmane.os.cygwin.ports.announce>
++
++=item aio
++
++libaio-devel "Linux-native asynchronous I/O access" is not available
++for cygwin, and as the name says it will never be :)
++
+ =back
+
+ =head1 BUILD
+@@ -53,21 +114,25 @@
+
+ =item Makefile tuning
+
+-rename libparrot.dll to cygparrot.dll, create an interim libparrot.dll.a
++Rename libparrot.dll to cygparrot0_6_x.dll and create an interim
++libparrot.dll.a
+
+-fix the blib/lib PATH issue
++ [perl #56998] [TODO] rename cygwin dll to cygparrot$MAJOR_$MINOR_$PATCH.dll
++ [perl #56562] [PATCH] root.in: add cygwin importlib
+
+-=item DLL versioning
++=item loadlib DLL versioning
+
+-cyg*-1.1.dll instead of lib*.so.1.1
++Use cyg*-1.1.dll naming conventions instead of lib*.so.1.1 names for
++loadlib, the FFI.
+
+-Thanks to the L<Windows DLL Hell / http://> and the impossibility of file
+-hardlinks, windows dll names are versioned, so the loadlib function or the
+-various pir's needs more logic.
++Thanks to the L<Windows DLL Hell / http://?> and the impossibility of
++file hardlinks, windows dll names are versioned, so the loadlib
++function or the various pir's needs more logic.
+
+-Either add the version to each loadlib call, and stem the version from POSIX
+-versions within get_path(), or add an optional version argument to loadlib for
+-win32. Or just fix all the pir's.
++Either add the version to each loadlib call, and stem the version from
++POSIX versions within get_path(), or add an optional version argument
++to loadlib for win32. Or just fix all the pir's, which will be easier
++when exceptions work again.
+
+ =item Features
+
+--- origsrc/parrot-0.8.2/README_win32.pod 2008-12-17 06:55:08.000000000 +0000
++++ src/parrot-0.8.2/README_win32.pod 2008-12-25 13:44:20.053375000 +0000
+@@ -155,6 +155,10 @@
+ Note: It is possible to use ActiveState Perl with the Toolkit: you don't
+ have to compile your own perl.
+
++If you want to use MSVC with a mingw-gcc perl you can use
++C<--cc=cl --link=link>. Just F<ar> in F<config_lib.pasm> has to be changed
++to F<lib> and C<LIBPARROT = $(LIBPARROT_STATIC)> in F<Makefile>.
++
+ =item Strawberry Perl
+
+ With the Strawberry perl distro from
+--- origsrc/parrot-0.8.2/VERSION 2008-12-17 06:55:00.000000000 +0000
++++ src/parrot-0.8.2/VERSION 2008-12-25 13:44:20.053375000 +0000
+@@ -1 +1 @@
+-0.8.1
++0.8.2
+--- origsrc/parrot-0.8.2/config/auto/opengl.pm 2008-08-20 05:48:51.000000000 +0000
++++ src/parrot-0.8.2/config/auto/opengl.pm 2008-12-25 13:44:20.100250000 +0000
+@@ -114,14 +114,16 @@
+
+ The Cygwin/w32api for native opengl support
+
+-F<-lglut32 -lglu32 -lopengl32>
+-
++F<opengl>, F<w32api>
+
+ =head3 Cygwin/X
+
+ Requires a X server.
+
+-F<freeglut>, F<libglut-devel>
++F<freeglut>, F<libglut-devel>, F<xorg-x11-devel>
++
++This is detected if freeglut is installed and DISPLAY is set.
++It requires an X server.
+
+ =cut
+
+@@ -167,25 +169,20 @@
+
+ my $osname = $conf->data->get_p5('OSNAME');
+
+- # Prefer Cygwin/w32api over Cygwin/X, but use X when DISPLAY is set
+- if ($^O eq 'cygwin' and $ENV{DISPLAY}) {
+- $self->_add_to_libs( {
+- conf => $conf,
+- osname => $osname,
+- cc => $cc,
+- cygwin => '-lglut -L/usr/X11R6/lib -lGLU -lGL'
+- } )
+- }
+- else {
+- $self->_add_to_libs( {
++ $self->_add_to_libs( {
+ conf => $conf,
+ osname => $osname,
+ cc => $cc,
++ # Prefer Cygwin/w32api over Cygwin/X, but use X when DISPLAY is set
++ ($^O eq 'cygwin') ?
++ ($ENV{DISPLAY} ? (cygwin => '-lglut -L/usr/X11R6/lib -lGLU -lGL')
++ : (cygwin => '/bin/cygglut-3.dll -lglu32 -lopengl32'))
++ : (),
+ win32_gcc => '-lglut32 -lglu32 -lopengl32',
+ win32_nongcc => 'opengl32.lib glu32.lib glut32.lib',
+ darwin => '-framework OpenGL -framework GLUT',
+ default => '-lglut -lGLU -lGL',
+- } ) };
++ } );
+
+ # On OS X check the presence of the OpenGL headers in the standard
+ # Fink/macports locations.
+--- origsrc/parrot-0.8.2/config/gen/config_pm/config_lib.in 2008-02-27 04:34:52.000000000 +0000
++++ src/parrot-0.8.2/config/gen/config_pm/config_lib.in 2008-12-27 15:52:58.990375000 +0000
+@@ -1,3 +1,4 @@
++
+ .pcc_sub main:
+ get_params "(0)", P5
+ set I10, P5 # argv
+@@ -12,10 +13,17 @@
+
+ <<PCONFIG>>
+
+- if I11, is_install
++ set P0["installed"], I11
++ ge I11, 1, is_install
+ set S1, "<<PWD>>"
+ set P0["prefix"], S1
+ is_install:
+ freeze S0, P0
+ print S0
+ end
++
++# Local Variables:
++# mode: pir
++# fill-column: 100
++# End:
++# vim: expandtab shiftwidth=4 ft=pir:
+--- origsrc/parrot-0.8.2/config/gen/makefiles/bcg.in 2008-09-28 09:18:54.000000000 +0000
++++ src/parrot-0.8.2/config/gen/makefiles/bcg.in 2008-12-25 13:44:20.178375000 +0000
+@@ -1,25 +1,25 @@
+ RM_F = @rm_f@
+ PERL = @perl@
+-PARROT = @build_dir@/parrot@exe@
+-#CONDITIONED_LINE(win32):LIBPARROT = @build_dir@/libparrot@a@
+-#INVERSE_CONDITIONED_LINE(win32):LIBPARROT = @build_dir@/@blib_dir@/libparrot@a@
+-O = @o@
++PARROT = @build_dir@/parrot@exe@
++#IF(win32):LIBPARROT = @build_dir@/libparrot@a@
++#ELSE:LIBPARROT = @build_dir@/@blib_dir@/libparrot@a@
++O = @o@
+ LOAD_EXT = @load_ext@
+ CC = @cc@
+ CC_INC = @cc_inc@ -I@build_dir@/include
+ C_LIBS = @libs@
+ CC_SHARED = @cc_shared@
+ CFLAGS = $(CC_INC) @ccflags@ @cc_debug@ @ccwarn@ @cc_hasjit@ @cg_flag@ @gc_flag@ $(CC_SHARED)
+-LINK_DYNAMIC = @link_dynamic@
++LINK_DYNAMIC = @link_dynamic@
+ LINK = @link@
+ LINKFLAGS = @linkflags@ @link_debug@ @ld_debug@
+ LD = @ld@
+-#CONDITIONED_LINE(win32):LDFLAGS = @ldflags@ @ld_debug@ $(LIBPARROT)
+-#INVERSE_CONDITIONED_LINE(win32):LDFLAGS = @ldflags@ @ld_debug@ -L@build_dir@/blib/lib/ -lparrot
++#IF(win32 or cygwin):LDFLAGS = @ldflags@ @ld_debug@ $(LIBPARROT)
++#ELSE:LDFLAGS = @ldflags@ @ld_debug@ -L@build_dir@/blib/lib/ -lparrot
+ SHARE_EXT = @share_ext@
+ LD_SHARE_FLAGS = @ld_share_flags@
+ BUILD_PMC = $(PERL) @build_dir@/tools/build/dynpmc.pl
+-SRC_PMC_DIR = src/pmc
++SRC_PMC_DIR = src/pmc
+ DEST_PMC_DIR = @build_dir@/runtime/parrot/dynext
+ PMC_GROUP = $(DEST_PMC_DIR)/bcg_group$(LOAD_EXT)
+ DYNPMC_INCLUDE = @build_dir@/compilers/bcg/include,@build_dir@/compilers/bcg/include,@build_dir@/compilers/bcg/include
+@@ -61,8 +61,7 @@
+ $(SRC_PMC_DIR)/*$(LOAD_EXT) \
+ $(PMC_GROUP)
+
+-all: pmcs
+-
++all: pmcs Makefile
+
+ #
+ # Build Targets
+@@ -73,7 +72,6 @@
+ $(LD) $(LD_SHARE_FLAGS) $(LDFLAGS) @ld_out@$@ $(BCG_O_FILES) @libs@
+ $(CP) @build_dir@/blib/lib/libbcg$(SHARE_EXT) @build_dir@
+
+-
+ pmcs: $(LIB_BCG)
+ @cd $(SRC_PMC_DIR) && $(BUILD_PMC) generate $(PMCS)
+ @cd $(SRC_PMC_DIR) && DYNPMC_INCLUDE=$(DYNPMC_INCLUDE) $(BUILD_PMC) compile $(PMCS)
+@@ -81,6 +79,9 @@
+ @cd $(SRC_PMC_DIR) && $(BUILD_PMC) copy "--destination=$(DEST_PMC_DIR)" \
+ $(PMCS)
+
++# regenerate the Makefile
++Makefile: @build_dir@/config/gen/makefiles/docs.in
++ cd @build_dir@ && $(RECONFIGURE) --step=gen::makefiles --target=docs/Makefile
+
+ #
+ # Test Targets
+@@ -103,3 +104,9 @@
+ realclean: clean
+
+ distclean: realclean
++
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/config/gen/makefiles/docs.in 2008-09-25 21:22:54.000000000 +0000
++++ src/parrot-0.8.2/config/gen/makefiles/docs.in 2008-12-25 13:44:20.178375000 +0000
+@@ -7,6 +7,8 @@
+ MKPATH = @mkpath@
+ CHMOD = @chmod@
+ PERLDOC = @perldoc@
++BUILD_DIR = @build_dir@
++RECONFIGURE = $(PERL) @build_dir@/tools/dev/reconfigure.pl
+
+ # long list of .pod files
+ POD = @pod@
+@@ -16,7 +18,11 @@
+ #
+
+ # The default target
+-all: doc-prep packfile-c.pod $(POD)
++all: doc-prep packfile-c.pod $(POD) Makefile
++
++# regenerate the Makefile
++Makefile: $(BUILD_DIR)/config/gen/makefiles/docs.in
++ cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::makefiles --target=docs/Makefile
+
+ # This is a listing of all targets, that are meant to be called by users
+ # Most of them are proxied in the root makefile parrot/Makefile
+@@ -35,8 +41,8 @@
+ $(MKPATH) ops
+
+ packfile-c.pod: ../src/packfile.c
+-#CONDITIONED_LINE(new_perldoc): $(PERLDOC) -ud packfile-c.pod ../src/packfile.c
+-#INVERSE_CONDITIONED_LINE(new_perldoc): $(PERLDOC) -u ../src/packfile.c > packfile-c.pod
++#IF(new_perldoc): $(PERLDOC) -ud packfile-c.pod ../src/packfile.c
++#ELSE: $(PERLDOC) -u ../src/packfile.c > packfile-c.pod
+
+ clean:
+ $(RM_F) packfile-c.pod $(POD)
+@@ -47,3 +53,8 @@
+ html-clean:
+ $(PERL) -I../lib -MParrot::Distribution -e "Parrot::Distribution->new()->delete_html_docs()"
+
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/config/gen/makefiles/dynoplibs.in 2007-11-10 04:47:18.000000000 +0000
++++ src/parrot-0.8.2/config/gen/makefiles/dynoplibs.in 2008-12-25 13:44:20.178375000 +0000
+@@ -46,3 +46,9 @@
+ distclean: realclean
+
+ svnclean: realclean
++
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/config/gen/makefiles/dynoplibs_pl.in 2007-11-10 04:47:17.000000000 +0000
++++ src/parrot-0.8.2/config/gen/makefiles/dynoplibs_pl.in 2008-12-25 13:44:20.194000000 +0000
+@@ -32,7 +32,7 @@
+ our $CFLAGS = q[@ccflags@ @cc_shared@ @cc_debug@ @ccwarn@ @cc_hasjit@ @cg_flag@ @gc_flag@];
+
+ our $LIBPARROT = q[];
+-#CONDITIONED_LINE(parrot_is_shared):$LIBPARROT = q[@libparrot_ldflags@];
++#IF(parrot_is_shared):$LIBPARROT = q[@libparrot_ldflags@];
+
+ # Here comes some stuff for Win32.
+ our $PATHQUOTE = q[];
+@@ -46,15 +46,15 @@
+ }
+
+ # OPS2C Config
+-our $OPS2C = "$PERL -I $PATHQUOTE" .
++our $OPS2C = "$PERL -I $PATHQUOTE" .
+ q[@build_dir@@slash@lib] .
+ "$PATHQUOTE $PATHQUOTE" .
+ q[@build_dir@@slash@tools@slash@build@slash@ops2c.pl] .
+ $PATHQUOTE;
+ our %cores = (
+ C => q[],
+-#CONDITIONED_LINE(cg_flag): CGP => '_cgp',
+-#CONDITIONED_LINE(cg_flag): CGoto => '_cg',
++#IF(cg_flag): CGP => '_cgp',
++#IF(cg_flag): CGoto => '_cg',
+ CSwitch => '_switch'
+ );
+
+@@ -73,7 +73,7 @@
+
+ sub partial_link_cmd {
+ my ($target, $libs, $sources) = @_;
+-
++
+ my $liblist;
+ if ($^O =~ /mswin32/i) {
+ # Need to put various libraries in the link line.
+@@ -93,7 +93,7 @@
+ "$LD ".
+ "@ld_out@" . $target . " " .
+ join(" ", map {"$PATHQUOTE$_$PATHQUOTE"} @$sources) .
+- " $liblist $LDFLAGS $LD_LOAD_FLAGS $PATHQUOTE$LIBPARROT$PATHQUOTE";
++ " $LDFLAGS $LD_LOAD_FLAGS $PATHQUOTE$LIBPARROT$PATHQUOTE $liblist";
+ }
+
+ our $NOW = time();
+@@ -106,14 +106,14 @@
+ # Convert X.ops -> ops_X.c, ops_X_cgp.c, ops_X_cg.c and ops_X_switch.c
+ my $core;
+ generate_c($_) foreach (@oplibs);
+-}
++}
+ elsif ($mode eq 'compile') {
+ # Convert X.c -> X.o for all X.c
+ my $core_suffix;
+ foreach $core_suffix (values %cores) {
+ compile($_ . "_ops$core_suffix") foreach (@oplibs);
+ }
+-}
++}
+ elsif ($mode eq 'linklibs') {
+ my @objs = grep { /$O$/} @oplibs;
+ @oplibs = grep {!/$O$/} @oplibs;
+@@ -123,7 +123,7 @@
+ foreach $core_suffix (values %cores) {
+ partial_link({}, $_ . "_ops$core_suffix", @objs) foreach (@oplibs);
+ }
+-}
++}
+ elsif ($mode eq 'copy') {
+ # Copy *.so -> destination, where destination is the first
+ # argument, given as --destination=DIRECTORY
+--- origsrc/parrot-0.8.2/config/gen/makefiles/dynpmc.in 2008-05-28 19:43:48.000000000 +0000
++++ src/parrot-0.8.2/config/gen/makefiles/dynpmc.in 2008-12-27 14:30:03.349750000 +0000
+@@ -14,30 +14,30 @@
+ dynlexpad \
+ foo \
+ rotest \
+-#CONDITIONED_LINE(has_gdbm): gdbmhash \
++#IF(has_gdbm): gdbmhash \
+ rational \
+-#CONDITIONED_LINE(has_crypto): md2 \
+-#CONDITIONED_LINE(has_crypto): md4 \
+-#CONDITIONED_LINE(has_crypto): md5 \
+-#CONDITIONED_LINE(has_crypto): ripemd160 \
+-#CONDITIONED_LINE(has_crypto): sha \
+-#CONDITIONED_LINE(has_crypto): sha1 \
+-#CONDITIONED_LINE(has_crypto): sha256 \
+-#CONDITIONED_LINE(has_crypto): sha512 \
++#IF(has_crypto): md2 \
++#IF(has_crypto): md4 \
++#IF(has_crypto): md5 \
++#IF(has_crypto): ripemd160 \
++#IF(has_crypto): sha \
++#IF(has_crypto): sha1 \
++#IF(has_crypto): sha256 \
++#IF(has_crypto): sha512 \
+ subproxy
+
+ BUILD = $(PERL) @build_dir@/tools/build/dynpmc.pl
+
+ # some *.pmc file are generated
+ GEN_PMC_DEFINITIONS = \
+-#CONDITIONED_LINE(has_crypto): md2.pmc \
+-#CONDITIONED_LINE(has_crypto): md4.pmc \
+-#CONDITIONED_LINE(has_crypto): md5.pmc \
+-#CONDITIONED_LINE(has_crypto): ripemd160.pmc \
+-#CONDITIONED_LINE(has_crypto): sha.pmc \
+-#CONDITIONED_LINE(has_crypto): sha1.pmc \
+-#CONDITIONED_LINE(has_crypto): sha256.pmc \
+-#CONDITIONED_LINE(has_crypto): sha512.pmc
++#IF(has_crypto): md2.pmc \
++#IF(has_crypto): md4.pmc \
++#IF(has_crypto): md5.pmc \
++#IF(has_crypto): ripemd160.pmc \
++#IF(has_crypto): sha.pmc \
++#IF(has_crypto): sha1.pmc \
++#IF(has_crypto): sha256.pmc \
++#IF(has_crypto): sha512.pmc
+
+ all :
+ @$(BUILD) generate $(PMCS)
+@@ -58,7 +58,7 @@
+ # win32 exported functions and data items
+ # win32 export definition files
+ dynext-clean :
+- $(RM_F) "*.lib" "*.pdb" "*.ilk" "*.exp" "*.def" "*.manifest"
++#IF(win32): $(RM_F) "*.lib" "*.pdb" "*.ilk" "*.exp" "*.def" "*.manifest"
+
+ clean : testclean dynext-clean
+ $(RM_F) "*.c" "pmc_*.h" "*_group.h" "*$(LOAD_EXT)" "*.dump" "lib-*" "*$(O)"
+@@ -72,3 +72,9 @@
+ distclean: realclean
+
+ svnclean: realclean
++
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/config/gen/makefiles/dynpmc_pl.in 2008-10-02 03:22:42.000000000 +0000
++++ src/parrot-0.8.2/config/gen/makefiles/dynpmc_pl.in 2008-12-27 14:26:44.584125000 +0000
+@@ -36,7 +36,7 @@
+ our $CFLAGS = q[@ccflags@ @cc_shared@ @cc_debug@ @ccwarn@ @cc_hasjit@ @cg_flag@ @gc_flag@];
+
+ our $LIBPARROT = q[];
+-#CONDITIONED_LINE(parrot_is_shared):$LIBPARROT = q[@libparrot_ldflags@];
++#IF(parrot_is_shared):$LIBPARROT = q[@libparrot_ldflags@];
+
+ # Here comes some stuff for Win32.
+ our $PATHQUOTE = '';
+@@ -81,8 +81,15 @@
+
+ my $liblist;
+ if ($^O =~ /mswin32/i) {
+- # Need to put various libraries in the link line.
+- $liblist = join( ' ', map { "$_.lib" } keys %$libs );
++ # Note that we may need to look in the Parrot directory first.
++ if ($CC =~ /gcc/i) {
++ $liblist = qq{ -Wl,-L "@build_dir@"};
++ }
++ else {
++ $liblist = qq{ /LIBPATH:"@build_dir@"};
++ }
++ # Need to add various libraries in the link line.
++ $liblist .= join( ' ', map { "$_.lib" } keys %$libs );
+ if ($CC =~ /gcc/i) {
+ $liblist =~ s/libgdbm\.lib/-llibgdbm/i;
+ }
+@@ -90,14 +97,6 @@
+ $extraLibs =~ s/blib/..\\blib/g;
+ $extraLibs =~ s/\Q$(A)\E/.lib/g;
+ $liblist .= ' ' . $extraLibs;
+-
+- # Also note that we may need to look in the Parrot blib directory.
+- if ($CC =~ /gcc/i) {
+- $liblist .= qq{ -Wl,-L "@build_dir@/blib/lib"};
+- }
+- else {
+- $liblist .= qq{ /LIBPATH:"@build_dir@/blib/lib"};
+- }
+ }
+ else {
+ $liblist = join( ' ', map { "-l$_" } keys %$libs );
+@@ -109,11 +108,14 @@
+ push @$sources, split ",", $ENV{DYNPMC_LINK};
+ }
+
++ # LDFLAGS, LIBS or ICU_SHARED may contain -L/usr/lib or -L/usr/local/lib
++ # falsely favoring an already installed libparrot.{so,dll}. So put liblist
++ # to the end.
+ return
+ "$LD ".
+ '@ld_out@' . $target . " " .
+ join(" ", map {"$PATHQUOTE$_$PATHQUOTE"} @$sources) .
+- " $liblist $LDFLAGS $LD_LOAD_FLAGS $PATHQUOTE$LIBPARROT$PATHQUOTE";
++ " $LDFLAGS $LD_LOAD_FLAGS $PATHQUOTE$LIBPARROT$PATHQUOTE $liblist";
+ }
+
+ our $NOW = time();
+--- origsrc/parrot-0.8.2/config/gen/makefiles/editor.in 2008-12-17 06:55:11.000000000 +0000
++++ src/parrot-0.8.2/config/gen/makefiles/editor.in 2008-12-27 14:27:51.052875000 +0000
+@@ -1,8 +1,8 @@
+ # $Id: /mirror/trunk/config/gen/makefiles/editor.in 32838 2008-11-18T11:47:12.633216Z cotto $
+
+ OPS_DIR = ../src/ops
+-#CONDITIONED_LINE(win32):VIM_DIR = $(USERPROFILE)/vimfiles
+-#INVERSE_CONDITIONED_LINE(win32):VIM_DIR = $(HOME)/.vim
++#IF(win32):VIM_DIR = $(USERPROFILE)/vimfiles
++#ELSE:VIM_DIR = $(HOME)/.vim
+ VIM_FT_DIR = $(VIM_DIR)/plugin
+ VIM_IN_DIR = $(VIM_DIR)/indent
+ VIM_SYN_DIR = $(VIM_DIR)/syntax
+@@ -11,10 +11,15 @@
+ CP = @cp@
+ MKPATH = @mkpath@
+ RM_F = @rm_f@
++RECONFIGURE = $(PERL) @build_dir@/tools/dev/reconfigure.pl
+
+ default: all
+
+-all: pir.vim imc.kate
++all: pir.vim imc.kate Makefile
++
++# regenerate the Makefile
++Makefile: @build_dir@/config/gen/makefiles/editor.in
++ cd @build_dir@ && $(RECONFIGURE) --step=gen::makefiles --target=editor/Makefile
+
+ # This is a listing of all targets, that are meant to be called by users
+ help :
+@@ -66,3 +71,9 @@
+
+ realclean: clean
+ $(RM_F) Makefile
++
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/config/gen/makefiles/ext.in 2008-12-17 06:55:11.000000000 +0000
++++ src/parrot-0.8.2/config/gen/makefiles/ext.in 2008-12-25 13:44:20.240875000 +0000
+@@ -28,7 +28,14 @@
+ @echo " This is the default."
+ @echo " test: Unified test suite for a lot of languages."
+ @echo ""
++ @echo " installable: Create self-hosting bins and libs."
++ @echo ""
++ @echo " test-installable: Test self-hosting bins and libs."
++ @echo ""
++ @echo " install: Make install for a lot of languages."
++ @echo ""
+ @echo " clean: Clean up a lot of languages."
++ @echo " realclean: Clean up and remove Makefiles."
+ @echo ""
+ @echo " help: Print this help message."
+ @echo ""
+@@ -40,11 +47,14 @@
+ @echo ""
+ @echo "Following languages are available:"
+ @echo " $(LANGUAGES)"
+- @echo "A particular language <lang> can be built, tested and cleand up"
+ @echo " make <lang>"
+ @echo " make <lang>.test"
++ @echo " make <lang>.installable"
++ @echo " make <lang>.test-installable"
++ @echo " make <lang>.install"
+ @echo " make <lang>.clean"
+- @echo "For the status of individual languages see LANGUAGES.STATUS.pod"
++ @echo " make <lang>.realclean"
++ @echo "For the status of individual languages see LANGUAGES_STATUS.pod"
+ @echo ""
+
+ clean: \
+@@ -59,10 +69,15 @@
+ Parrot-Embed : Parrot-Embed.dummy
+
+ Parrot-Embed.dummy:
+-#CONDITIONED_LINE(win32): - cd Parrot-Embed && $(PERL) Makefile.PL && nmake
+-#INVERSE_CONDITIONED_LINE(win32): - cd Parrot-Embed && $(PERL) Makefile.PL && $(MAKE)
++#IF(win32): - cd Parrot-Embed && $(PERL) Makefile.PL && nmake
++#ELSE: - cd Parrot-Embed && $(PERL) Makefile.PL && $(MAKE)
+
+ Parrot-Embed.clean:
+-#CONDITIONED_LINE(win32): - cd Parrot-Embed && nmake clean
+-#INVERSE_CONDITIONED_LINE(win32): - cd Parrot-Embed && $(MAKE) clean
++#IF(win32): - cd Parrot-Embed && nmake clean
++#ELSE: - cd Parrot-Embed && $(MAKE) clean
+
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/config/gen/makefiles/json.in 2008-05-28 19:43:48.000000000 +0000
++++ src/parrot-0.8.2/config/gen/makefiles/json.in 2008-12-25 13:44:20.240875000 +0000
+@@ -3,13 +3,19 @@
+ PERL = @perl@
+ RM_F = @rm_f@
+ PARROT = ../../parrot@exe@
++RECONFIGURE = $(PERL) @build_dir@/tools/dev/reconfigure.pl
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
+
+ TOOL_DIR = ../..
+ PGE_DIR = ../../compilers/pge
+ TGE_DIR = ../../compilers/tge
+
+ # the default target
+-all: JSON.pbc
++all: JSON.pbc Makefile
++
++# regenerate the Makefile
++Makefile: @build_dir@/config/gen/makefiles/json.in
++ cd @build_dir@ && $(RECONFIGURE) --step=gen::makefiles --target=compilers/json/Makefile
+
+ # This is a listing of all targets, that are meant to be called by users
+ help:
+@@ -52,3 +58,9 @@
+
+ clean : testclean
+ @rm_f@ "JSON/*.pbc" "JSON/*.pir" JSON.pbc
++
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/config/gen/makefiles/languages.in 2008-12-17 06:55:11.000000000 +0000
++++ src/parrot-0.8.2/config/gen/makefiles/languages.in 2008-12-25 13:44:20.256500000 +0000
+@@ -46,6 +46,12 @@
+ @echo ""
+ @echo " test-separate: Run 'make test' in the individual lang dirs."
+ @echo ""
++ @echo " installable: Create self-hosting bins and libs."
++ @echo ""
++ @echo " test-installable: Test self-hosting bins and libs."
++ @echo ""
++ @echo " install: Copy installable and more to DESTDIR."
++ @echo ""
+ @echo " clean: Clean up a lot of languages."
+ @echo ""
+ @echo " help: Print this help message."
+@@ -59,13 +65,16 @@
+ @echo "Following languages are available:"
+ @echo " $(LANGUAGES)"
+ @echo ""
+- @echo "A particular language <lang> can be built, tested and cleand up"
++ @echo "A particular language <lang> can be built, tested and cleaned up"
+ @echo " make <lang>"
+ @echo " make <lang>.test"
++ @echo " make <lang>.installable"
++ @echo " make <lang>.test-installable"
++ @echo " make <lang>.install"
+ @echo " make <lang>.clean"
+ @echo " make <lang>.realclean"
+ @echo ""
+- @echo "For the status of individual languages see LANGUAGES.STATUS.pod"
++ @echo "For the status of individual languages see LANGUAGES_STATUS.pod"
+ @echo ""
+
+ # regenerate the Makefile
+@@ -87,7 +96,7 @@
+ hq9plus.test \
+ jako.test json.test \
+ lazy-k.test lisp.test lolcode.test lua.test \
+- m4.test \
++ m4.test markdown.test \
+ ook.test \
+ parrot_compiler.test perl6.test pheme.test PIR.test pipp.test punie.test pynie.test \
+ regex.test \
+@@ -96,6 +105,65 @@
+ WMLScript.test \
+ Zcode.test
+
++installable : all \
++ abc.installable APL.installable \
++ befunge.installable bf.installable \
++ c99.installable cardinal.installable chitchat.installable cola.installable \
++ dotnet.installable \
++ eclectus.installable ecmascript.installable \
++ forth.installable \
++ hq9plus.installable \
++ jako.installable json.installable \
++ lazy-k.installable lisp.installable lolcode.installable lua.installable \
++ m4.installable markdown.installable \
++ ook.installable \
++ parrot_compiler.installable perl6.installable pheme.installable PIR.installable pipp.installable punie.installable pynie.installable \
++ regex.installable \
++ scheme.installable squaak.installable \
++ tcl.installable \
++ urm.installable unlambda.installable \
++ WMLScript.installable \
++ Zcode.installable
++
++test-installable : all \
++ abc.test-installable APL.test-installable \
++ befunge.test-installable bf.test-installable \
++ c99.test-installable cardinal.test-installable chitchat.test-installable cola.test-installable \
++ dotnet.test-installable \
++ eclectus.test-installable ecmascript.test-installable \
++ forth.test-installable \
++ hq9plus.test-installable \
++ jako.test-installable json.test-installable \
++ lazy-k.test-installable lisp.test-installable lolcode.test-installable lua.test-installable \
++ m4.test-installable markdown.test-installable \
++ ook.test-installable \
++ parrot_compiler.test-installable perl6.test-installable pheme.test-installable PIR.test-installable pipp.test-installable punie.test-installable pynie.test-installable \
++ regex.test-installable \
++ scheme.test-installable squaak.test-installable \
++ tcl.test-installable \
++ urm.test-installable unlambda.test-installable \
++ WMLScript.test-installable \
++ Zcode.test-installable
++
++install : all \
++ abc.install APL.install \
++ befunge.install bf.install \
++ c99.install cardinal.install chitchat.install cola.install \
++ dotnet.install \
++ eclectus.install ecmascript.install \
++ forth.install \
++ hq9plus.install \
++ jako.install json.install \
++ lazy-k.install lisp.install lolcode.install lua.install \
++ m4.install markdown.install \
++ ook.install \
++ parrot_compiler.install perl6.install pheme.install PIR.install pipp.install punie.install pynie.install \
++ regex.install \
++ scheme.install squaak.install \
++ tcl.install \
++ urm.install unlambda.install \
++ WMLScript.install \
++ Zcode.install
+
+ smoke: all
+ $(PERL) t/harness --html
+@@ -156,6 +224,12 @@
+ - $(MAKE) abc
+ abc.test:
+ - $(MAKE) abc test
++abc.installable:
++ - $(MAKE) abc installable
++abc.test-installable:
++ - $(MAKE) abc test-installable DESTDIR=$(DESTDIR)
++abc.install:
++ - $(MAKE) abc install DESTDIR=$(DESTDIR)
+ abc.clean:
+ - $(MAKE) abc clean
+ abc.realclean:
+@@ -166,6 +240,12 @@
+ - $(MAKE) APL
+ APL.test:
+ - $(MAKE) APL test
++APL.installable:
++ - $(MAKE) APL installable
++APL.test-installable:
++ - $(MAKE) APL test-installable DESTDIR=$(DESTDIR)
++APL.install:
++ - $(MAKE) APL install DESTDIR=$(DESTDIR)
+ APL.clean:
+ - $(MAKE) APL clean
+ APL.realclean:
+@@ -176,6 +256,12 @@
+ # don't know how to build BASIC
+ BASIC.test:
+ # Don't know how to test BASIC
++BASIC.installable:
++# Missing for BASIC
++BASIC.test-installable:
++# Missing for BASIC
++BASIC.install:
++# Missing for BASIC
+ BASIC.clean:
+ # Don't know how to clean BASIC
+
+@@ -184,6 +270,12 @@
+ - $(MAKE) befunge
+ befunge.test:
+ - $(MAKE) befunge test
++befunge.installable:
++ - $(MAKE) befunge installable
++befunge.test-installable:
++ - $(MAKE) befunge test-installable DESTDIR=$(DESTDIR)
++befunge.install:
++ - $(MAKE) befunge install DESTDIR=$(DESTDIR)
+ befunge.clean:
+ - $(MAKE) befunge clean
+ befunge.realclean:
+@@ -194,6 +286,12 @@
+ - $(MAKE) bf
+ bf.test:
+ - $(MAKE) bf test
++bf.installable:
++ - $(MAKE) bf installable
++bf.test-installable:
++ - $(MAKE) bf test-installable DESTDIR=$(DESTDIR)
++bf.install:
++ - $(MAKE) bf install DESTDIR=$(DESTDIR)
+ bf.clean:
+ - $(MAKE) bf clean
+ bf.realclean:
+@@ -204,6 +302,12 @@
+ - $(MAKE) c99
+ c99.test:
+ - $(MAKE) c99 test
++c99.installable:
++ - $(MAKE) c99 installable
++c99.test-installable:
++ - $(MAKE) c99 test-installable DESTDIR=$(DESTDIR)
++c99.install:
++ - $(MAKE) c99 install DESTDIR=$(DESTDIR)
+ c99.clean:
+ - $(MAKE) c99 clean
+ c99.realclean:
+@@ -214,6 +318,12 @@
+ - $(MAKE) cardinal
+ cardinal.test:
+ - $(MAKE) cardinal test
++cardinal.installable:
++ - $(MAKE) cardinal installable
++cardinal.test-installable:
++ - $(MAKE) cardinal test-installable DESTDIR=$(DESTDIR)
++cardinal.install:
++ - $(MAKE) cardinal install DESTDIR=$(DESTDIR)
+ cardinal.clean:
+ - $(MAKE) cardinal clean
+ cardinal.realclean:
+@@ -224,6 +334,12 @@
+ - $(MAKE) chitchat
+ chitchat.test:
+ - $(MAKE) chitchat test
++chitchat.installable:
++ - $(MAKE) chitchat installable
++chitchat.test-installable:
++ - $(MAKE) chitchat test-installable DESTDIR=$(DESTDIR)
++chitchat.install:
++ - $(MAKE) chitchat install DESTDIR=$(DESTDIR)
+ chitchat.clean:
+ - $(MAKE) chitchat clean
+ chitchat.realclean:
+@@ -234,6 +350,12 @@
+ - $(MAKE) cola
+ cola.test:
+ - $(MAKE) cola test
++cola.installable:
++ - $(MAKE) cola installable
++cola.test-installable:
++ - $(MAKE) cola test-installable DESTDIR=$(DESTDIR)
++cola.install:
++ - $(MAKE) cola install DESTDIR=$(DESTDIR)
+ cola.clean:
+ - $(MAKE) cola clean
+ cola.realclean:
+@@ -245,6 +367,12 @@
+ - $(MAKE) dotnet
+ dotnet.test:
+ - $(MAKE) dotnet test
++dotnet.installable:
++ - $(MAKE) dotnet installable
++dotnet.test-installable:
++ - $(MAKE) dotnet test-installable DESTDIR=$(DESTDIR)
++dotnet.install:
++ - $(MAKE) dotnet install DESTDIR=$(DESTDIR)
+ dotnet.clean:
+ - $(MAKE) dotnet clean
+ dotnet.realclean:
+@@ -255,6 +383,12 @@
+ - $(MAKE) eclectus
+ eclectus.test :
+ - $(MAKE) eclectus test
++eclectus.installable:
++ - $(MAKE) eclectus installable
++eclectus.test-installable:
++ - $(MAKE) eclectus test-installable DESTDIR=$(DESTDIR)
++eclectus.install:
++ - $(MAKE) eclectus install DESTDIR=$(DESTDIR)
+ eclectus.clean :
+ - $(MAKE) eclectus clean
+ eclectus.realclean :
+@@ -265,6 +399,12 @@
+ - $(MAKE) ecmascript
+ ecmascript.test:
+ - $(MAKE) ecmascript test
++ecmascript.installable:
++ - $(MAKE) ecmascript installable
++ecmascript.test-installable:
++ - $(MAKE) ecmascript test-installable DESTDIR=$(DESTDIR)
++ecmascript.install:
++ - $(MAKE) ecmascript install DESTDIR=$(DESTDIR)
+ ecmascript.clean:
+ - $(MAKE) ecmascript clean
+ ecmascript.realclean:
+@@ -275,6 +415,12 @@
+ - $(MAKE) forth
+ forth.test:
+ - $(MAKE) forth test
++forth.installable:
++ - $(MAKE) forth installable
++forth.test-installable:
++ - $(MAKE) forth test-installable DESTDIR=$(DESTDIR)
++forth.install:
++ - $(MAKE) forth install DESTDIR=$(DESTDIR)
+ forth.clean:
+ - $(MAKE) forth clean
+ forth.realclean:
+@@ -285,6 +431,12 @@
+ - $(MAKE) hq9plus
+ hq9plus.test:
+ - $(MAKE) hq9plus test
++hq9plus.installable:
++ - $(MAKE) hq9plus installable
++hq9plus.test-installable:
++ - $(MAKE) hq9plus test-installable DESTDIR=$(DESTDIR)
++hq9plus.install:
++ - $(MAKE) hq9plus install DESTDIR=$(DESTDIR)
+ hq9plus.clean:
+ - $(MAKE) hq9plus clean
+ hq9plus.realclean:
+@@ -295,6 +447,12 @@
+ - $(MAKE) jako
+ jako.test:
+ - $(MAKE) jako test
++jako.installable:
++ - $(MAKE) jako installable
++jako.test-installable:
++ - $(MAKE) jako test-installable DESTDIR=$(DESTDIR)
++jako.install:
++ - $(MAKE) jako install DESTDIR=$(DESTDIR)
+ jako.clean:
+ - $(MAKE) jako clean
+ jako.realclean:
+@@ -305,6 +463,12 @@
+ - $(MAKE) json
+ json.test:
+ - $(MAKE) json test
++json.installable:
++ - $(MAKE) json installable
++json.test-installable:
++ - $(MAKE) json test-installable DESTDIR=$(DESTDIR)
++json.install:
++ - $(MAKE) json install DESTDIR=$(DESTDIR)
+ json.clean:
+ - $(MAKE) json clean
+ json.realclean:
+@@ -315,6 +479,12 @@
+ - $(MAKE) lazy-k
+ lazy-k.test:
+ - $(MAKE) lazy-k test
++lazy-k.installable:
++ - $(MAKE) lazy-k installable
++lazy-k.test-installable:
++ - $(MAKE) lazy-k test-installable DESTDIR=$(DESTDIR)
++lazy-k.install:
++ - $(MAKE) lazy-k install DESTDIR=$(DESTDIR)
+ lazy-k.clean:
+ - $(MAKE) lazy-k clean
+ lazy-k.realclean:
+@@ -325,6 +495,12 @@
+ - $(MAKE) lisp
+ lisp.test:
+ - $(MAKE) lisp test
++lisp.installable:
++ - $(MAKE) lisp installable
++lisp.test-installable:
++ - $(MAKE) lisp test-installable DESTDIR=$(DESTDIR)
++lisp.install:
++ - $(MAKE) lisp install DESTDIR=$(DESTDIR)
+ lisp.clean:
+ - $(MAKE) lisp clean
+ lisp.realclean:
+@@ -335,6 +511,12 @@
+ - $(MAKE) lolcode
+ lolcode.test:
+ - $(MAKE) lolcode test
++lolcode.installable:
++ - $(MAKE) lolcode installable
++lolcode.test-installable:
++ - $(MAKE) lolcode test-installable DESTDIR=$(DESTDIR)
++lolcode.install:
++ - $(MAKE) lolcode install DESTDIR=$(DESTDIR)
+ lolcode.clean:
+ - $(MAKE) lolcode clean
+ lolcode.realclean:
+@@ -345,6 +527,12 @@
+ - $(MAKE) lua
+ lua.test:
+ - $(MAKE) lua test
++lua.installable:
++ - $(MAKE) lua installable
++lua.test-installable:
++ - $(MAKE) lua test-installable DESTDIR=$(DESTDIR)
++lua.install:
++ - $(MAKE) lua install DESTDIR=$(DESTDIR)
+ lua.clean:
+ - $(MAKE) lua clean
+ lua.realclean:
+@@ -355,6 +543,12 @@
+ - $(MAKE) m4
+ m4.test:
+ - $(MAKE) m4 test
++m4.installable:
++ - $(MAKE) m4 installable
++m4.test-installable:
++ - $(MAKE) m4 test-installable DESTDIR=$(DESTDIR)
++m4.install:
++ - $(MAKE) m4 install DESTDIR=$(DESTDIR)
+ m4.clean:
+ - $(MAKE) m4 clean
+ m4.realclean:
+@@ -365,6 +559,12 @@
+ - $(MAKE) markdown
+ markdown.test:
+ - $(MAKE) markdown test
++markdown.installable:
++ - $(MAKE) markdown installable
++markdown.test-installable:
++ - $(MAKE) markdown test-installable DESTDIR=$(DESTDIR)
++markdown.install:
++ - $(MAKE) markdown install DESTDIR=$(DESTDIR)
+ markdown.clean:
+ - $(MAKE) markdown clean
+ markdown.realclean:
+@@ -375,6 +575,12 @@
+ - $(MAKE) ook
+ ook.test:
+ - $(MAKE) ook test
++ook.installable:
++ - $(MAKE) ook installable
++ook.test-installable:
++ - $(MAKE) ook test-installable DESTDIR=$(DESTDIR)
++ook.install:
++ - $(MAKE) ook install DESTDIR=$(DESTDIR)
+ ook.clean:
+ - $(MAKE) ook clean
+ ook.realclean:
+@@ -385,6 +591,12 @@
+ - $(MAKE) parrot_compiler
+ parrot_compiler.test:
+ - $(MAKE) parrot_compiler test
++parrot_compiler.installable:
++ - $(MAKE) ook installable
++parrot_compiler.test-installable:
++ - $(MAKE) ook test-installable DESTDIR=$(DESTDIR)
++parrot_compiler.install:
++ - $(MAKE) ook install DESTDIR=$(DESTDIR)
+ parrot_compiler.clean:
+ - $(MAKE) parrot_compiler clean
+ parrot_compiler.realclean:
+@@ -395,6 +607,12 @@
+ - $(MAKE) perl6
+ perl6.test:
+ - $(MAKE) perl6 test
++perl6.installable:
++ - $(MAKE) perl6 installable
++perl6.test-installable:
++ - $(MAKE) perl6 test-installable DESTDIR=$(DESTDIR)
++perl6.install:
++ - $(MAKE) perl6 install DESTDIR=$(DESTDIR)
+ perl6.clean:
+ - $(MAKE) perl6 clean
+ perl6.realclean:
+@@ -405,6 +623,12 @@
+ - $(MAKE) pheme
+ pheme.test:
+ - $(MAKE) pheme test
++pheme.installable:
++ - $(MAKE) pheme installable
++pheme.test-installable:
++ - $(MAKE) pheme test-installable DESTDIR=$(DESTDIR)
++pheme.install:
++ - $(MAKE) pheme install DESTDIR=$(DESTDIR)
+ pheme.clean:
+ - $(MAKE) pheme clean
+ pheme.realclean:
+@@ -415,6 +639,12 @@
+ - $(MAKE) pipp
+ pipp.test:
+ - $(MAKE) pipp test
++pipp.installable:
++ - $(MAKE) pipp installable
++pipp.test-installable:
++ - $(MAKE) pipp test-installable DESTDIR=$(DESTDIR)
++pipp.install:
++ - $(MAKE) pipp install DESTDIR=$(DESTDIR)
+ pipp.clean:
+ - $(MAKE) pipp clean
+ pipp.realclean:
+@@ -425,6 +655,12 @@
+ - $(MAKE) PIR
+ PIR.test:
+ - $(MAKE) PIR test
++PIR.installable:
++ - $(MAKE) PIR installable
++PIR.test-installable:
++ - $(MAKE) PIR test-installable DESTDIR=$(DESTDIR)
++PIR.install:
++ - $(MAKE) PIR install DESTDIR=$(DESTDIR)
+ PIR.clean:
+ - $(MAKE) PIR clean
+ PIR.realclean:
+@@ -435,6 +671,12 @@
+ - $(MAKE) punie
+ punie.test:
+ - $(MAKE) punie test
++punie.installable:
++ - $(MAKE) punie installable
++punie.test-installable:
++ - $(MAKE) punie test-installable DESTDIR=$(DESTDIR)
++punie.install:
++ - $(MAKE) punie install DESTDIR=$(DESTDIR)
+ punie.clean:
+ - $(MAKE) punie clean
+ punie.realclean:
+@@ -445,6 +687,12 @@
+ - $(MAKE) pynie
+ pynie.test:
+ - $(MAKE) pynie test
++pynie.installable:
++ - $(MAKE) pynie installable
++pynie.test-installable:
++ - $(MAKE) pynie test-installable DESTDIR=$(DESTDIR)
++pynie.install:
++ - $(MAKE) pynie install DESTDIR=$(DESTDIR)
+ pynie.clean:
+ - $(MAKE) pynie clean
+ pynie.realclean:
+@@ -455,6 +703,12 @@
+ - $(MAKE) regex
+ regex.test :
+ - $(MAKE) regex test
++regex.installable:
++ - $(MAKE) regex installable
++regex.test-installable:
++ - $(MAKE) regex test-installable DESTDIR=$(DESTDIR)
++regex.install:
++ - $(MAKE) regex install DESTDIR=$(DESTDIR)
+ regex.clean :
+ - $(MAKE) regex clean
+ regex.realclean :
+@@ -465,6 +719,12 @@
+ @echo "SKIPPED: scheme: (nothing to make, but should not default to make test)"
+ scheme.test :
+ - $(MAKE) scheme test
++scheme.installable:
++ - $(MAKE) scheme installable
++scheme.test-installable:
++ - $(MAKE) scheme test-installable DESTDIR=$(DESTDIR)
++scheme.install:
++ - $(MAKE) scheme install DESTDIR=$(DESTDIR)
+ scheme.clean :
+ - $(MAKE) scheme clean
+ scheme.realclean :
+@@ -475,6 +735,12 @@
+ - $(MAKE) squaak
+ squaak.test:
+ - $(MAKE) squaak test
++squaak.installable:
++ - $(MAKE) squaak installable
++squaak.test-installable:
++ - $(MAKE) squaak test-installable DESTDIR=$(DESTDIR)
++squaak.install:
++ - $(MAKE) squaak install DESTDIR=$(DESTDIR)
+ squaak.clean:
+ - $(MAKE) squaak clean
+ squaak.realclean:
+@@ -485,6 +751,12 @@
+ - $(MAKE) unlambda
+ unlambda.test :
+ - $(MAKE) unlambda test
++unlambda.installable:
++ - $(MAKE) unlambda installable
++unlambda.test-installable:
++ - $(MAKE) unlambda test-installable DESTDIR=$(DESTDIR)
++unlambda.install:
++ - $(MAKE) unlambda install DESTDIR=$(DESTDIR)
+ unlambda.clean :
+ - $(MAKE) unlambda clean
+ unlambda.realclean :
+@@ -495,6 +767,12 @@
+ - $(MAKE) urm
+ urm.test:
+ - $(MAKE) urm test
++urm.installable:
++ - $(MAKE) urm installable
++urm.test-installable:
++ - $(MAKE) urm test-installable DESTDIR=$(DESTDIR)
++urm.install:
++ - $(MAKE) urm install DESTDIR=$(DESTDIR)
+ urm.clean:
+ - $(MAKE) urm clean
+ urm.realclean:
+@@ -505,6 +783,12 @@
+ - $(MAKE) WMLScript
+ WMLScript.test:
+ - $(MAKE) WMLScript test
++WMLScript.installable:
++ - $(MAKE) WMLScript installable
++WMLScript.test-installable:
++ - $(MAKE) WMLScript test-installable DESTDIR=$(DESTDIR)
++WMLScript.install:
++ - $(MAKE) WMLScript install DESTDIR=$(DESTDIR)
+ WMLScript.clean:
+ - $(MAKE) WMLScript clean
+ WMLScript.realclean:
+@@ -515,7 +799,19 @@
+ # Do nothing. make Zcode requires an Inform compiler
+ Zcode.test:
+ - $(MAKE) Zcode test
++Zcode.installable:
++# Do nothing. make Zcode requires an Inform compiler
++Zcode.test-installable:
++# Do nothing. make Zcode requires an Inform compiler
++Zcode.install:
++# Do nothing. make Zcode requires an Inform compiler
+ Zcode.clean:
+ - $(MAKE) Zcode clean
+ Zcode.realclean:
+ - $(MAKE) Zcode realclean
++
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/config/gen/makefiles/nqp.in 2008-05-28 19:43:48.000000000 +0000
++++ src/parrot-0.8.2/config/gen/makefiles/nqp.in 2008-12-25 13:44:20.256500000 +0000
+@@ -4,6 +4,8 @@
+ PERL = @perl@
+ RM_F = @rm_f@
+ PARROT = ../../parrot@exe@
++RECONFIGURE = $(PERL) @build_dir@/tools/dev/reconfigure.pl
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
+
+ PARROT_LIBRARY = @build_dir@/runtime/parrot/library
+ PGE_LIBRARY = @build_dir@/runtime/parrot/library/PGE
+@@ -26,11 +28,15 @@
+
+ boot: $(BOOTSRC)
+ $(PARROT) nqp.pbc \
+- --output=bootstrap/gen_actions.pir \
+- --target=pir \
+- bootstrap/actions.pm
++ --output=bootstrap/gen_actions.pir \
++ --target=pir \
++ bootstrap/actions.pm
+ $(PARROT) --output-pbc -o bootstrap/nqp.pbc bootstrap/nqp.pir
+
++# regenerate the Makefile
++Makefile: @build_dir@/config/gen/makefiles/nqp.in
++ cd @build_dir@ && $(RECONFIGURE) --step=gen::makefiles --target=compilers/nqp/Makefile
++
+ # This is a listing of all targets, that are meant to be called by users
+ help:
+ @echo ""
+@@ -71,3 +77,9 @@
+ $(RM_F) Makefile
+
+ distclean: realclean
++
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/config/gen/makefiles/parrot_embed.in 2007-11-10 04:47:18.000000000 +0000
++++ src/parrot-0.8.2/config/gen/makefiles/parrot_embed.in 2008-12-25 13:44:20.272125000 +0000
+@@ -15,7 +15,7 @@
+ $config{PARROT} = '..@slash@..@slash@parrot@exe@';
+ $config{C_LIBS} = '@libs@';
+ $config{INCLUDE} = "$config{PARROTDIR}/include";
+-#INVERSE_CONDITIONED_LINE(win32):$config{ALL_PARROT_LIBS} = "@libparrot_ldflags@ $config{C_LIBS}";
++#UNLESS(win32):$config{ALL_PARROT_LIBS} = "@libparrot_ldflags@ $config{C_LIBS}";
+ $config{ABS_PARROTDIR} = Cwd::realpath(
+ File::Spec->rel2abs( $config{PARROTDIR} ) );
+ $config{LDDLFLAGS} = $Config{lddlflags};
+@@ -30,9 +30,9 @@
+ 'NAME' => 'Parrot::Embed',
+ 'VERSION_FROM' => 'lib/Parrot/Embed.pm',
+ 'PREREQ_PM' => { 'ExtUtils::CBuilder' => 0 },
+-#CONDITIONED_LINE(win32): 'LIBS' => [ $config{C_LIBS} ],
+-#CONDITIONED_LINE(win32): 'OBJECT' => "@libparrot_ldflags@ Embed@o@",
+-#INVERSE_CONDITIONED_LINE(win32): 'LIBS' => [ $config{ALL_PARROT_LIBS} ],
++#IF(win32): 'LIBS' => [ $config{C_LIBS} ],
++#IF(win32): 'OBJECT' => "@libparrot_ldflags@ Embed@o@",
++#ELSE: 'LIBS' => [ $config{ALL_PARROT_LIBS} ],
+ 'INC' => "-I$config{INCLUDE}",
+ 'PM' => { map { $_ => "blib/$_" } <lib/Parrot/*pm> },
+ 'clean' => { FILES => '*.xs t/greet.pbc' },
+@@ -43,7 +43,9 @@
+
+ sub postamble
+ {
+- "t/greet.pbc:\n\t$config{PARROT} -o t/greet.pbc t/greet.pir\n";
++ "t/greet.pbc:\n\t$config{PARROT} -o t/greet.pbc t/greet.pir\n"
++ ."#\n# Local variables:\n# mode: makefile\n"
++ ."# ex: ft=make\n# End:\n";
+ }
+
+ sub test
+@@ -64,3 +66,10 @@
+ $inherited =~ s{($sub_target)}{$1 t/greet.pbc};
+ $inherited;
+ }
++
++# Local Variables:
++# mode: cperl
++# cperl-indent-level: 4
++# fill-column: 100
++# End:
++# vim: expandtab shiftwidth=4:
+--- origsrc/parrot-0.8.2/config/gen/makefiles/pct.in 2008-01-02 19:00:25.000000000 +0000
++++ src/parrot-0.8.2/config/gen/makefiles/pct.in 2008-12-25 13:44:20.272125000 +0000
+@@ -9,6 +9,8 @@
+ PGE_DIR = ../../compilers/pge
+ TEST_DIR = ../../t/compilers/pct
+ CP = @cp@
++RECONFIGURE = $(PERL) @build_dir@/tools/dev/reconfigure.pl
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
+
+ # Where to put things
+ PARROT_LIBRARY = ../../runtime/parrot/library
+@@ -30,7 +32,7 @@
+ src/POST/Node.pir
+
+ # the default target
+-all: $(PARROT_LIBRARY)/PCT.pbc
++all: $(PARROT_LIBRARY)/PCT.pbc Makefile
+
+ $(PARROT_LIBRARY)/PCT.pbc: $(PARROT) $(PCT_SOURCES)
+ $(PARROT) -o $(PARROT_LIBRARY)/PCT.pbc --output-pbc PCT.pir
+@@ -38,6 +40,10 @@
+ $(PARROT) -o $(PARROT_LIBRARY)/PCT/Grammar.pbc --output-pbc src/PCT/Grammar.pir
+ $(PARROT) -o $(PARROT_LIBRARY)/PCT/HLLCompiler.pbc --output-pbc src/PCT/HLLCompiler.pir
+
++# regenerate the Makefile
++Makefile: @build_dir@/config/gen/makefiles/pct.in
++ cd @build_dir@ && $(RECONFIGURE) --step=gen::makefiles --target=compilers/pct/Makefile
++
+ # This is a listing of all targets, that are meant to be called by users
+ help:
+ @echo ""
+@@ -72,3 +78,9 @@
+ $(RM_F) Makefile
+
+ distclean: realclean
++
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/config/gen/makefiles/pge.in 2008-05-28 19:43:48.000000000 +0000
++++ src/parrot-0.8.2/config/gen/makefiles/pge.in 2008-12-25 13:44:20.287750000 +0000
+@@ -7,12 +7,14 @@
+ PARROT = ../../parrot@exe@
+ TOOL_DIR = ../..
+ CP = @cp@
++RECONFIGURE = $(PERL) @build_dir@/tools/dev/reconfigure.pl
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
+
+ # Where to put things
+ PARROT_LIBRARY = ../../runtime/parrot/library
+
+ # the default target
+-all: $(PARROT_LIBRARY)/PGE.pbc
++all: $(PARROT_LIBRARY)/PGE.pbc Makefile
+
+ SOURCES = PGE.pir \
+ PGE/Exp.pir \
+@@ -30,10 +32,14 @@
+ $(RM_F) PGE.pbc $(PARROT_LIBRARY)/PGE.pbc
+ $(PERL) -e "" >PGE/builtins_gen.pir
+ $(PARROT) -o PGE.pbc --output-pbc PGE.pir
+- $(PARROT) $(PARROT_LIBRARY)/PGE/Perl6Grammar.pir --output=PGE/builtins_gen.pir PGE/builtins.pg
++ $(PARROT) $(PARROT_LIBRARY)/PGE/Perl6Grammar.pir --output=PGE/builtins_gen.pir PGE/builtins.pg
+ $(RM_F) PGE.pbc
+ $(PARROT) -o PGE.pbc --output-pbc PGE.pir
+
++# regenerate the Makefile
++Makefile: @build_dir@/config/gen/makefiles/pge.in
++ cd @build_dir@ && $(RECONFIGURE) --step=gen::makefiles --target=compilers/pge/Makefile
++
+ # This is a listing of all targets, that are meant to be called by users
+ help:
+ @echo ""
+@@ -75,3 +81,9 @@
+ $(RM_F) Makefile
+
+ distclean: realclean
++
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/config/gen/makefiles/pirc.in 2008-12-17 06:55:11.000000000 +0000
++++ src/parrot-0.8.2/config/gen/makefiles/pirc.in 2008-12-25 13:44:20.287750000 +0000
+@@ -8,6 +8,8 @@
+ TOOL_DIR = ../..
+ CC = @cc@
+ CP = @cp@
++POD2HTML = pod2html
++PODCHECKER = podchecker
+ BUILD = $(PERL) @build_dir@/tools/build/dynpmc.pl
+ O = @o@
+ EXE = @exe@
+@@ -56,8 +58,11 @@
+
+
+ # the default target
+-all: pirc$(EXE)
++all: pirc$(EXE) heredoc macro Makefile
+
++# regenerate the Makefile
++Makefile: $(BUILD_DIR)/config/gen/makefiles/pirc.in
++ cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::makefiles --target=compilers/pirc/Makefile
+
+ pirc$(EXE): $(OBJS)
+ $(LINK) @ld_out@$@ \
+@@ -76,7 +81,7 @@
+ new/bcgen$(O): new/bcgen.c new/bcgen.h
+
+ test: all
+- podchecker $(SOURCES) \
++ $(PODCHECKER) $(SOURCES) \
+ doc/design.pod \
+ README.pod
+ perl t/harness
+@@ -98,3 +103,9 @@
+ doc/*.html
+
+ distclean: realclean
++
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/config/gen/makefiles/root.in 2008-12-17 06:55:11.000000000 +0000
++++ src/parrot-0.8.2/config/gen/makefiles/root.in 2008-12-25 13:44:20.303375000 +0000
+@@ -19,6 +19,7 @@
+ DEVEL = @DEVEL@
+ VERSION = @VERSION@$(DEVEL)
+ SOVERSION = @VERSION@
++CONFIG_ARGS = @config_args@
+
+ # Override at least PREFIX with the install location if you're going
+ # to be using this outside of your build area.
+@@ -105,7 +106,7 @@
+ RECONFIGURE = $(PERL) tools/dev/reconfigure.pl
+ INNO_SETUP = iscc
+ JIT_BUILD_TOOL = $(BUILD_TOOLS_DIR)/jit2c.pl
+-#CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++#IF(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
+
+ ###############################################################################
+ #
+@@ -138,7 +139,7 @@
+
+ GEN_MAKEFILES = \
+ Makefile \
+-#CONDITIONED_LINE(has_perldoc): docs/Makefile \
++#IF(has_perldoc): docs/Makefile \
+ compilers/bcg/Makefile \
+ compilers/json/Makefile \
+ compilers/ncigen/Makefile \
+@@ -165,9 +166,9 @@
+ lib/Parrot/PMC.pm \
+ runtime/parrot/include/config.fpmc \
+ $(SRC_DIR)/platform.c \
+-#CONDITIONED_LINE(platform_asm): $(SRC_DIR)/platform_asm.s \
+-#CONDITIONED_LINE(has_opengl): config/gen/call_list/opengl.in \
+-#CONDITIONED_LINE(has_glut): $(SRC_DIR)/glut_callbacks.c \
++#IF(platform_asm): $(SRC_DIR)/platform_asm.s \
++#IF(has_opengl): config/gen/call_list/opengl.in \
++#IF(has_glut): $(SRC_DIR)/glut_callbacks.c \
+ $(SRC_DIR)/core_pmcs.c \
+ CFLAGS \
+ $(IMCC_DIR)/CFLAGS \
+@@ -184,8 +185,8 @@
+
+ GEN_PASM_INCLUDES = \
+ runtime/parrot/include/signal.pasm \
+-#CONDITIONED_LINE(has_opengl): runtime/parrot/include/opengl_defines.pasm \
+-#CONDITIONED_LINE(has_opengl): runtime/parrot/library/OpenGL_funcs.pir \
++#IF(has_opengl): runtime/parrot/include/opengl_defines.pasm \
++#IF(has_opengl): runtime/parrot/library/OpenGL_funcs.pir \
+ @TEMP_gen_pasm_includes@
+
+ CONFIGURE_GENERATED_FILES = \
+@@ -253,7 +254,7 @@
+ $(LIBRARY_DIR)/MIME/Base64.pbc \
+ $(LIBRARY_DIR)/NCI/call_toolkit_init.pbc \
+ $(LIBRARY_DIR)/ncurses.pbc \
+-#CONDITIONED_LINE(has_opengl): $(LIBRARY_DIR)/OpenGL.pbc \
++#IF(has_opengl): $(LIBRARY_DIR)/OpenGL.pbc \
+ $(LIBRARY_DIR)/P6object.pbc \
+ $(LIBRARY_DIR)/parrotlib.pbc \
+ $(LIBRARY_DIR)/pcre.pbc \
+@@ -369,7 +370,7 @@
+ $(OPS_DIR)/core_ops$(O) \
+ $(OPS_DIR)/core_ops_switch$(O) \
+ \
+-#CONDITIONED_LINE(i386_has_gcc_cmpxchg): $(SRC_DIR)/atomic/gcc_x86$(O) \
++#IF(i386_has_gcc_cmpxchg): $(SRC_DIR)/atomic/gcc_x86$(O) \
+ $(SRC_DIR)/byteorder$(O) \
+ $(SRC_DIR)/charset$(O) \
+ $(SRC_DIR)/core_pmcs$(O) \
+@@ -441,7 +442,7 @@
+ @TEMP_atomic_o@ \
+ @TEMP_jit_o@ \
+ @TEMP_gc_o@ \
+-#CONDITIONED_LINE(platform_asm): $(SRC_DIR)/platform_asm$(O) \
++#IF(platform_asm): $(SRC_DIR)/platform_asm$(O) \
+
+ O_FILES = \
+ $(INTERP_O_FILES) \
+@@ -484,14 +485,15 @@
+
+ # Libraries
+ LIBPARROT_STATIC = @blib_dir@/@libparrot_static@
+-#CONDITIONED_LINE(darwin):export DYLD_LIBRARY_PATH := @blib_dir@:$(DYLD_LIBRARY_PATH)
+-#CONDITIONED_LINE(win32):LIBPARROT_SHARED = @libparrot_shared@
+-#INVERSE_CONDITIONED_LINE(win32):LIBPARROT_SHARED = @blib_dir@/@libparrot_shared@
++#IF(darwin):export DYLD_LIBRARY_PATH := @blib_dir@:$(DYLD_LIBRARY_PATH)
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
++#IF(cygwin or win32):LIBPARROT_SHARED = @libparrot_shared@
++#ELSE:LIBPARROT_SHARED = @blib_dir@/@libparrot_shared@
+
+ # This line controls whether a static or shared library is built
+ LIBPARROT = @libparrot@
+
+-#CONDITIONED_LINE(has_icu):ICU_SHARED = @icu_shared@
++#IF(has_icu):ICU_SHARED = @icu_shared@
+ ALL_PARROT_LIBS = @libparrot_ldflags@ $(ICU_SHARED) $(C_LIBS)
+
+ # dynamic extensions
+@@ -546,7 +548,7 @@
+ #
+ ###############################################################################
+
+-all : \
++build : \
+ flags_dummy \
+ PARROT_LIBS \
+ $(PARROT) \
+@@ -554,7 +556,7 @@
+ runtime/parrot/include/config.fpmc \
+ docs \
+ $(LIBNCI_TEST_SO) \
+-#CONDITIONED_LINE(has_glut): $(LIBGLUTCB_SO) \
++#IF(has_glut): $(LIBGLUTCB_SO) \
+ $(GEN_LIBRARY) \
+ dynpmc \
+ dynoplibs \
+@@ -564,6 +566,8 @@
+ $(DIS) \
+ $(PBCMERGE)
+
++all : build parrot_utils installable $(PERL6) languages
++
+ $(GEN_LIBRARY) : $(PARROT)
+
+ # constant string support
+@@ -759,7 +763,8 @@
+
+ parrot_utils : $(PDUMP) $(DIS) $(PINFO) $(PDB) $(PBCMERGE) $(PBC_TO_EXE) $(PARROT_CONFIG)
+
+-installable: all $(INSTALLABLEPARROT) $(INSTALLABLEPDUMP) $(INSTALLABLEDIS) $(INSTALLABLEPINFO) $(INSTALLABLEPDB) $(INSTALLABLEPBCMERGE) $(INSTALLABLECONFIG)
++installable: build parrot_utils $(INSTALLABLEPARROT) $(INSTALLABLEPDUMP) $(INSTALLABLEDIS) \
++ $(INSTALLABLEPINFO) $(INSTALLABLEPDB) $(INSTALLABLEPBCMERGE) $(INSTALLABLECONFIG)
+
+
+ flags_dummy :
+@@ -770,7 +775,6 @@
+ $(PARROT) -o $@ runtime/parrot/library/parrotlib.pir
+
+ runtime/parrot/include/config.fpmc : myconfig config_lib.pasm $(MINIPARROT)
+- @cygchkdll@
+ @echo Invoking Parrot to generate runtime/parrot/include/config.fpmc --cross your fingers
+ $(MINIPARROT) config_lib.pasm > $@
+
+@@ -780,7 +784,7 @@
+ $(LINK) @ld_out@$@ \
+ $(SRC_DIR)/main$(O) $(SRC_DIR)/parrot_config$(O) \
+ @rpath_blib@ $(ALL_PARROT_LIBS) $(LINKFLAGS) $(LINK_DYNAMIC)
+-#CONDITIONED_LINE(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
++#IF(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
+
+ pbc_to_exe.pir : $(PARROT) tools/dev/pbc_to_exe_gen.pl
+ $(PERL) tools/dev/pbc_to_exe_gen.pl \
+@@ -794,8 +798,12 @@
+ $(PARROT) -o parrot_config.pbc tools/util/parrot-config.pir
+ $(PARROT) pbc_to_exe.pbc parrot_config.pbc
+
++$(INSTALLABLECONFIG) : $(SRC_DIR)/install_config$(O) $(PARROT_CONFIG) $(PBC_TO_EXE)
++ $(PARROT) -o parrot_config.pbc tools/util/parrot-config.pir
++ $(PBC_TO_EXE) parrot_config.pbc --install
++
+ # HLL Executable targets
+-#CONDITIONED_LINE(win32):perl6 : $(PERL6)
++#IF(win32 or cygwin):perl6 : $(PERL6)
+
+ $(PERL6) : compilers $(PBC_TO_EXE)
+ $(MAKE) languages/perl6 perl6$(EXE)
+@@ -803,19 +811,20 @@
+ $(CHMOD) 0755 $(PERL6)
+ $(PERL6) -e"say 'Hello, world.'"
+
++# build the real miniparrot
+ $(MINIPARROT) : $(SRC_DIR)/main$(O) $(GEN_HEADERS) $(LIBPARROT) \
+ lib/Parrot/OpLib/core.pm $(SRC_DIR)/null_config$(O)
+ $(LINK) @ld_out@$@ $(SRC_DIR)/main$(O) $(SRC_DIR)/null_config$(O) \
+ @rpath_blib@ $(ALL_PARROT_LIBS) $(LINKFLAGS)
+-#CONDITIONED_LINE(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
++#IF(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
+
+ $(INSTALLABLEPARROT) : $(SRC_DIR)/main$(O) $(GEN_HEADERS) $(LIBPARROT) \
+ lib/Parrot/OpLib/core.pm $(SRC_DIR)/install_config$(O) \
+ $(PARROT)
+ $(LINK) @ld_out@$@ \
+- $(SRC_DIR)/main$(O) \
+- $(ALL_PARROT_LIBS) $(LINKFLAGS) $(SRC_DIR)/install_config$(O)
+-#CONDITIONED_LINE(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
++ $(SRC_DIR)/main$(O) $(SRC_DIR)/install_config$(O) \
++ $(ALL_PARROT_LIBS) $(LINKFLAGS)
++#IF(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
+
+ $(INC_DIR)/parrot.h : $(INC_DIR)/pbcversion.h $(INC_DIR)/vtable.h
+
+@@ -873,27 +882,23 @@
+ # so always delete the lib -leo
+
+ PARROT_LIBS: \
+-#CONDITIONED_LINE(has_static_linking): $(LIBPARROT_STATIC) \
+-#CONDITIONED_LINE(has_dynamic_linking): $(LIBPARROT_SHARED)
++#IF(has_static_linking): $(LIBPARROT_STATIC) \
++#IF(has_dynamic_linking): $(LIBPARROT_SHARED)
+
+ $(LIBPARROT_STATIC) : $(O_FILES)
+ $(MKPATH) @blib_dir@
+ $(AR_CR) @ar_out@$@ @ar_extra@ $(O_FILES)
+-#CONDITIONED_LINE(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
++#IF(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
+ $(RANLIB) $@
+
+ $(LIBPARROT_SHARED) : $(O_FILES)
+ $(MKPATH) @blib_dir@
+ $(LD) $(LD_SHARE_FLAGS) $(LDFLAGS) @ld_out@$@ @libparrot_soname@ \
+-#CONDITIONED_LINE(cygchkdll): -Wl,--out-implib=blib/lib/libparrot.dll.a \
++#IF(cygwin or msys or mingw): -Wl,--out-implib=libparrot.dll.a \
+ $(O_FILES) $(C_LIBS) $(ICU_SHARED)
+-#CONDITIONED_LINE(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
+-#CONDITIONED_LINE(libparrot_shared_alias): ( cd @blib_dir@ ; ln -sf @libparrot_shared@ @libparrot_shared_alias@ )
+-
++#IF(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
++#IF(libparrot_shared_alias): ( cd @blib_dir@ ; ln -sf @libparrot_shared@ @libparrot_shared_alias@ )
+
+-$(INSTALLABLECONFIG) : $(SRC_DIR)/install_config$(O) $(PARROT_CONFIG) $(PBC_TO_EXE)
+- $(PARROT) -o parrot_config.pbc tools/util/parrot-config.pir
+- $(PBC_TO_EXE) parrot_config.pbc --install
+
+ #
+ # Parrot Debugger
+@@ -906,14 +911,14 @@
+ $(SRC_DIR)/parrot_debugger$(O) \
+ $(SRC_DIR)/parrot_config$(O) \
+ @rpath_blib@ $(ALL_PARROT_LIBS) $(LINKFLAGS)
+-#CONDITIONED_LINE(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
++#IF(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
+
+ $(INSTALLABLEPDB) : $(SRC_DIR)/parrot_debugger$(O) $(LIBPARROT) $(SRC_DIR)/parrot_config$(O)
+ $(LINK) @ld_out@$@ \
+ $(SRC_DIR)/parrot_debugger$(O) \
+ $(SRC_DIR)/parrot_config$(O) \
+ $(ALL_PARROT_LIBS) $(LINKFLAGS)
+-#CONDITIONED_LINE(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
++#IF(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
+
+ #
+ # Parrot Disassembler
+@@ -925,13 +930,13 @@
+ $(LINK) @ld_out@$@ \
+ $(SRC_DIR)/pbc_disassemble$(O) \
+ @rpath_blib@ $(ALL_PARROT_LIBS) $(LINKFLAGS)
+-#CONDITIONED_LINE(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
++#IF(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
+
+ $(INSTALLABLEDIS) : $(SRC_DIR)/pbc_disassemble$(O) $(LIBPARROT)
+ $(LINK) @ld_out@$@ \
+ $(SRC_DIR)/pbc_disassemble$(O) \
+ $(ALL_PARROT_LIBS) $(LINKFLAGS)
+-#CONDITIONED_LINE(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
++#IF(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
+
+ #
+ # Parrot Dump
+@@ -941,7 +946,7 @@
+ $(LINK) @ld_out@$@ \
+ $(SRC_DIR)/pdump$(O) \
+ $(SRC_DIR)/packdump$(O) @rpath_blib@ $(ALL_PARROT_LIBS) $(LINKFLAGS)
+-#CONDITIONED_LINE(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
++#IF(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
+
+ $(SRC_DIR)/pdump$(O) : $(GEN_HEADERS)
+
+@@ -949,7 +954,7 @@
+ $(LINK) @ld_out@$@ \
+ $(SRC_DIR)/pdump$(O) \
+ $(SRC_DIR)/packdump$(O) $(ALL_PARROT_LIBS) $(LINKFLAGS)
+-#CONDITIONED_LINE(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
++#IF(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
+
+
+ # pbc_info
+@@ -957,7 +962,7 @@
+ $(LINK) @ld_out@$@ \
+ $(SRC_DIR)/pbc_info$(O) \
+ @rpath_blib@ $(ALL_PARROT_LIBS) $(LINKFLAGS)
+-#CONDITIONED_LINE(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
++#IF(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
+
+ $(SRC_DIR)/pbc_info$(O) : $(GEN_HEADERS)
+
+@@ -965,7 +970,7 @@
+ $(LINK) @ld_out@$@ \
+ $(SRC_DIR)/pbc_info$(O) \
+ $(ALL_PARROT_LIBS) $(LINKFLAGS)
+-#CONDITIONED_LINE(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
++#IF(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
+
+ #
+ # Parrot Bytecode File Merger
+@@ -976,14 +981,14 @@
+ $(SRC_DIR)/pbc_merge$(O) \
+ $(SRC_DIR)/parrot_config$(O) \
+ @rpath_blib@ $(ALL_PARROT_LIBS) $(LINK_DYNAMIC) $(LINKFLAGS)
+-#CONDITIONED_LINE(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
++#IF(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
+
+ $(INSTALLABLEPBCMERGE) : $(SRC_DIR)/pbc_merge$(O) $(LIBPARROT) $(INSTALLABLECONFIG)
+ $(LINK) @ld_out@$@ \
+ $(SRC_DIR)/pbc_merge$(O) \
+ $(SRC_DIR)/install_config$(O) \
+ $(ALL_PARROT_LIBS) $(LINKFLAGS)
+-#CONDITIONED_LINE(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
++#IF(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
+
+
+ ###############################################################################
+@@ -998,6 +1003,9 @@
+ lib/Parrot/OpsFile.pm lib/Parrot/Op.pm $(OPS_DIR)/ops.num $(OPS_DIR)/ops.skip
+ $(PERL) $(BUILD_TOOLS_DIR)/ops2pm.pl $(OPS_FILES)
+
++Makefile : config/gen/makefiles/root.in
++ $(PERL) tools/dev/reconfigure.pl --step=gen::makefiles --target=Makefile
++
+ ###############################################################################
+ #
+ # Examples (Assembly):
+@@ -1090,8 +1098,8 @@
+
+ $(SRC_DIR)/platform$(O) : $(GENERAL_H_FILES)
+
+-#CONDITIONED_LINE(platform_asm):$(SRC_DIR)/platform_asm$(O) : $(GENERAL_H_FILES)
+-#CONDITIONED_LINE(platform_asm):
++#IF(platform_asm):$(SRC_DIR)/platform_asm$(O) : $(GENERAL_H_FILES)
++#IF(platform_asm):
+ $(SRC_DIR)/core_pmcs$(O) : $(GENERAL_H_FILES)
+
+ $(SRC_DIR)/trace$(O) : $(GENERAL_H_FILES)
+@@ -1282,11 +1290,11 @@
+ #
+ ###############################################################################
+
+-#CONDITIONED_LINE(has_perldoc):docs : docs.dummy
+-#INVERSE_CONDITIONED_LINE(has_perldoc):docs : docs.stub
++#IF(has_perldoc):docs : docs.dummy
++#ELSE:docs : docs.stub
+
+-#CONDITIONED_LINE(has_perldoc):html : html.dummy
+-#INVERSE_CONDITIONED_LINE(has_perldoc):html : html.stub
++#IF(has_perldoc):html : html.dummy
++#ELSE:html : html.stub
+
+ html.stub:
+ @echo "Perldoc is required, but not detected."
+@@ -1482,10 +1490,10 @@
+ # when the needed runcores are available
+ fulltest :
+ -@make@ testb \
+-#CONDITIONED_LINE(cg_flag): testC \
++#IF(cg_flag): testC \
+ testf \
+-#CONDITIONED_LINE(cg_flag): testg \
+-#CONDITIONED_LINE(cg_flag): testj \
++#IF(cg_flag): testg \
++#IF(cg_flag): testj \
+ testr \
+ testS \
+ src_tests \
+@@ -1601,15 +1609,15 @@
+ prog-clean \
+ dynext-clean \
+ languages-clean \
+-#CONDITIONED_LINE(has_perldoc): docs-clean \
+-#CONDITIONED_LINE(has_perldoc): html-clean \
++#IF(has_perldoc): docs-clean \
++#IF(has_perldoc): html-clean \
+ dynpmc-clean \
+ dynoplibs-clean \
+ examples-clean \
+ imcc-clean \
+ compilers-clean \
+ smoke-clean \
+-#INVERSE_CONDITIONED_LINE(win32): cover-clean \
++#UNLESS(win32): cover-clean \
+ editor-clean
+ @TEMP_cg_r@
+ $(RM_F) chartypes "*.s" "*~"
+@@ -1652,7 +1660,9 @@
+ $(SRC_DIR)/string_private_cstring.h \
+ "$(SRC_DIR)/*.str" "$(SRC_DIR)/io/*.str" "$(SRC_DIR)/pmc/*.str" \
+ "src/pmc/*.c" "src/pmc/pmc_*.h" "src/pmc/*.dump" \
+- vtable.dump "*.def" "*.lib" "*.exp"
++ vtable.dump \
++#IF(win32): "*.def" "*.lib" "*.exp" \
++#IF(cygwin): "*.stackdump" \
+
+ archclean: dynoplibs-clean dynpmc-clean dynext-clean
+ $(RM_F) \
+@@ -1700,12 +1710,12 @@
+ $(RM_F) \
+ "$(DYNEXT_DIR)/*$(LOAD_EXT)" \
+ "$(DYNEXT_DIR)/*$(SHARE_EXT)" \
+- "$(DYNEXT_DIR)/*.lib" \
+- "*.pdb" "$(DYNEXT_DIR)/*.pdb" \
+- "*.ilk" "$(DYNEXT_DIR)/*.ilk" \
+- "*.exp" "$(DYNEXT_DIR)/*.exp" \
+- "*.def" "$(DYNEXT_DIR)/*.def" \
+- "*.manifest" "$(DYNEXT_DIR)/*.manifest"
++#IF(win32): "$(DYNEXT_DIR)/*.lib" \
++#IF(win32): "*.pdb" "$(DYNEXT_DIR)/*.pdb" \
++#IF(win32): "*.ilk" "$(DYNEXT_DIR)/*.ilk" \
++#IF(win32): "*.exp" "$(DYNEXT_DIR)/*.exp" \
++#IF(win32): "*.def" "$(DYNEXT_DIR)/*.def" \
++#IF(win32): "*.manifest" "$(DYNEXT_DIR)/*.manifest"
+
+ # Remove files generated by the test suite
+ # XXX Is there a danger of too long command lines in the $(RM_F) commands,
+@@ -1717,21 +1727,24 @@
+ "t/compilers/*/*.pbc" \
+ "t/compilers/*/*_pbcexe*" \
+ "t/compilers/*/*.pir" \
+- "t/compilers/*/*.stabs.s"
++ "t/compilers/*/*.stabs.s" \
++ "t/compilers/*/*.stackdump"
+ $(RM_F) \
+ "t/compilers/*/*/*.out" \
+ "t/compilers/*/*/*.pasm" \
+ "t/compilers/*/*/*.pbc" \
+ "t/compilers/*/*/*_pbcexe*" \
+ "t/compilers/*/*/*.pir" \
+- "t/compilers/*/*/*.stabs.s"
++ "t/compilers/*/*/*.stabs.s" \
++ "t/compilers/*/*/*.stackdump"
+ $(RM_F) \
+ "t/*/*$(O)" \
+ "t/*/*.out" \
+ "t/*/*.pasm" \
+ "t/*/*_pbcexe*" \
+ "t/*/*.pir" \
+- "t/*/*.stabs.s"
++ "t/*/*.stabs.s" \
++ "t/*/*.stackdump"
+ $(RM_F) \
+ "t/library/*.pbc" \
+ "t/dynoplibs/*.pbc" \
+@@ -1743,14 +1756,16 @@
+ $(RM_F) \
+ "t/src/*.c" \
+ "t/src/*.pdb" \
+- "t/src/*.manifest"
++ "t/src/*.manifest" \
++ "t/src/*.stackdump"
+ $(RM_F) \
+ "t/tools/pmc2c.t_*" \
+ "t/tools/pmc2c.pmc_t_*" \
+ "t/tools/parrot_debugger.t.*"
+ $(RM_F) \
+ "test$(EXE)" \
+- "test.*"
++ "test.*" \
++ "*.stackdump"
+ $(RM_F) \
+ "parrot_test_run.tar.gz"
+
+@@ -1778,7 +1793,7 @@
+ $(PERL) tools/dev/svnclobber.pl
+
+ reconfig : clean
+- $(PERL) Configure.pl
++ $(PERL) Configure.pl $(CONFIG_ARGS)
+
+ manitest :
+ $(PERL) tools/dev/manicheck.pl
+@@ -2069,10 +2084,10 @@
+ cover: \
+ cover.dummy \
+ cover-testb \
+-#CONDITIONED_LINE(cg_flag): cover-testC \
++#IF(cg_flag): cover-testC \
+ cover-testf \
+-#CONDITIONED_LINE(cg_flag): cover-testg \
+-#CONDITIONED_LINE(jitcapable): cover-testj \
++#IF(cg_flag): cover-testg \
++#IF(jitcapable): cover-testj \
+ cover-testr \
+ cover-testS \
+ cover-src \
+--- origsrc/parrot-0.8.2/config/gen/makefiles/tge.in 2008-05-28 19:43:48.000000000 +0000
++++ src/parrot-0.8.2/config/gen/makefiles/tge.in 2008-12-25 13:44:20.319000000 +0000
+@@ -6,13 +6,15 @@
+ PERL = @perl@
+ RM_F = @rm_f@
+ PARROT = ../../parrot@exe@
++RECONFIGURE = $(PERL) @build_dir@/tools/dev/reconfigure.pl
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
+
+ # Where to put things
+ PARROT_LIBRARY = ../../runtime/parrot/library
+ PERL6GRAMMAR = $(PARROT_LIBRARY)/PGE/Perl6Grammar.pbc
+
+ # the default target
+-all: $(PARROT_LIBRARY)/TGE.pbc
++all: $(PARROT_LIBRARY)/TGE.pbc Makefile
+
+ $(PARROT_LIBRARY)/TGE.pbc: TGE.pir TGE/Rule.pbc TGE/Parser.pbc TGE/Grammar.pbc TGE/Compiler.pbc TGE/Tree.pbc
+ $(PARROT) -o $(PARROT_LIBRARY)/TGE.pbc --output-pbc TGE.pir
+@@ -21,7 +23,11 @@
+ $(PARROT) -o $@ --output-pbc $<
+
+ TGE/Parser.pir: TGE/Parser.pg
+- $(PARROT) $(PERL6GRAMMAR) --output=TGE//Parser.pir TGE//Parser.pg
++ $(PARROT) $(PERL6GRAMMAR) --output=TGE/Parser.pir TGE/Parser.pg
++
++# regenerate the Makefile
++Makefile: @build_dir@/config/gen/makefiles/tge.in
++ cd @build_dir@ && $(RECONFIGURE) --step=gen::makefiles --target=compilers/tge/Makefile
+
+ # This is a listing of all targets, that are meant to be called by users
+ help:
+@@ -62,3 +68,9 @@
+ $(RM_F) Makefile
+
+ distclean: realclean
++
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/config/gen/opengl.pm 2008-12-17 06:55:11.000000000 +0000
++++ src/parrot-0.8.2/config/gen/opengl.pm 2008-12-25 13:44:20.334625000 +0000
+@@ -448,6 +448,9 @@
+ # "$ENV{HOME}/src/osx-insane/usr/X11R6 1/include/GL/*.h",
+ );
+
++ # X freeglut only if DISPLAY is set, otherwise use native w32api GLUT
++ shift @header_globs if $^O eq 'cygwin' and !$ENV{DISPLAY};
++
+ print "\nChecking for OpenGL headers using the following globs:\n\t",
+ join("\n\t", @header_globs), "\n"
+ if $verbose;
+--- origsrc/parrot-0.8.2/config/init/hints/cygwin.pm 2008-06-01 09:08:35.000000000 +0000
++++ src/parrot-0.8.2/config/init/hints/cygwin.pm 2008-12-25 13:44:20.397125000 +0000
+@@ -13,19 +13,31 @@
+ # in the standard installation, so we get rid of it
+ my $libs = $conf->data->get('libs');
+ $libs =~ s/-lutil\b//g;
++ # same for -lm and -dl
++ $libs =~ s/-lm\b//g;
++ $libs =~ s/-ldl\b//g;
+
+ my $build_dir = $conf->data->get('build_dir');
+ $build_dir =~ s/ /\\ /g;
++ my $libparrot_shared = $conf->data->get('libparrot_shared');
++ # force cyg prefix
++ $libparrot_shared =~ s/^lib/cyg/g;
++ # force the dll versioning
++ my @parrot_version = Parrot::BuildUtil::parrot_version();
++ my $dllsuffix = join("_",@parrot_version);
++ $libparrot_shared =~ s/parrot\.dll/parrot$dllsuffix\.dll/;
+
+- # A note about building shared libraries: Perl5 uses the 'ld2' tool, which
+- # is installed as part of the perl5 installation. So far, it appears
+- # parrot can get by with simply using gcc -shared, so we override the
+- # perl5 Configure defaults and use 'gcc -shared' instead of 'ld2'.
+- # If this later causes problems, it might be worth revisiting.
+- # A. Dougherty 9/9/2002
++ # An old note about building shared libraries: Perl5 used the 'ld2' tool until
++ # 5.8.8-4, which is installed as part of the perl5 installation. So far, it
++ # appears parrot can get by with simply using gcc -shared, so we override
++ # the perl5 Configure defaults and use 'gcc -shared' instead of 'ld2'. If
++ # this later causes problems, it might be worth revisiting. A. Dougherty
++ # 9/9/2002
+ $conf->data->set(
+ build_dir => $build_dir,
+- ld => 'gcc',
++ ld => $conf->data->get('ld') eq 'ld2'
++ ? 'gcc' # do not use old perl5 linker helper
++ : $conf->data->get('ld'), # gcc or g++
+ ld_share_flags => '-shared',
+ ld_load_flags => '-shared',
+ libs => $libs,
+@@ -34,7 +46,11 @@
+ parrot_is_shared => 1,
+ sym_export => '__declspec(dllexport)',
+ sym_import => '__declspec(dllimport)',
+- cygchkdll => 'tools/build/cygchkdll.sh $(MINIPARROT) $(LIBPARROT)',
++ #cygchkdll => 'tools/build/cygchkdll.sh $(MINIPARROT) $(LIBPARROT)',
++ libparrot_shared => $libparrot_shared,
++ blib_dir => '.',
++ # as with mingw link against the dll directly, not the importlib
++ libparrot_ldflags => $conf->data->get('build_dir') . '/' . $libparrot_shared,
+ );
+
+ # inet_aton needs to be defined on Cygwin.
+--- origsrc/parrot-0.8.2/config/inter/libparrot.pm 2008-08-20 05:48:50.000000000 +0000
++++ src/parrot-0.8.2/config/inter/libparrot.pm 2008-12-25 13:44:20.412750000 +0000
+@@ -41,18 +41,6 @@
+
+ $parrot_is_shared = 0 unless $conf->data->get('has_dynamic_linking');
+
+- # Parrot can't necessarily handle a pre-existing installed shared
+- # libparrot.so. At this point, we don't know the actual name
+- # of the shared parrot library. However, 'libparrot.so' will catch
+- # at least some of the problems.
+- # RT#52288: the check for old_versions should be improved
+- my $old_version
+- = File::Spec->catfile($conf->data->get('libdir'), 'libparrot.so');
+- if (-e $old_version) {
+- warn("\nWarning: Building a shared parrot library may conflict " .
+- "with your previously-installed $old_version\n");
+- }
+-
+ if (
+ $conf->options->get('ask')
+ &&
+@@ -83,16 +71,38 @@
+ : ''
+ );
+
++ # Should be overridden by hints to allow RT#39742 installed parrot
++ # conflicts with dev parrot. We do not know the LIBPARROT name yet.
++ # mingw and cygwin can link to the dll directly. Only msvc needs to link
++ # against the importlib.
+ unless ( defined( $conf->data->get('libparrot_ldflags') ) ) {
+- $conf->data->set(libparrot_ldflags =>
+- '-L'
+- . $conf->data->get('build_dir')
+- . $conf->data->get('slash')
+- . $conf->data->get('blib_dir')
+- . ' -lparrot'
++ $conf->data->set
++ ( libparrot_ldflags =>
++ defined( $conf->data->get('libparrot_shared') )
++ ? '-L'
++ . $conf->data->get('build_dir')
++ . $conf->data->get('slash')
++ . $conf->data->get('blib_dir')
++ . ' -lparrot'
++ : $conf->data->get('build_dir')
++ . $conf->data->get('slash')
++ . $conf->data->get('blib_dir')
++ . 'libparrot'
++ . $conf->data->get('a')
+ );
+ }
+
++ # RT#39742 installed parrot conflicts with dev parrot:
++ # move -L/usr/lib in ldflags to the back after -lparrot
++ # but better link directly to the file.
++ if ($parrot_is_shared and $conf->data->get('ldflags') =~ /(-L\S+)/) {
++ my $ldflags = $conf->data->get('ldflags');
++ my $lpath = $1;
++ $ldflags =~ s|$1||;
++ $conf->data->set('libs' => $lpath . " " . $conf->data->get('libs'));
++ $conf->data->set('ldflags' => $ldflags);
++ }
++
+ $self->set_result( $parrot_is_shared ? 'yes' : 'no' );
+
+ return 1;
+--- origsrc/parrot-0.8.2/languages/APL/config/makefiles/root.in 2008-06-23 02:30:47.000000000 +0000
++++ src/parrot-0.8.2/languages/APL/config/makefiles/root.in 2008-12-25 13:44:20.459625000 +0000
+@@ -4,33 +4,46 @@
+ PARROT_ARGS =
+
+ ## configuration settings
++HLLNAME = APL
+ BUILD_DIR = @build_dir@
+ LOAD_EXT = @load_ext@
+ O = @o@
++BIN_DIR = @bin_dir@
++LIB_DIR = @lib_dir@
++DOC_DIR = @doc_dir@
++MANDIR = @mandir@
+
+ ## Setup some commands
+ LN_S = @lns@
+ PERL = @perl@
+ RM_F = @rm_f@
+ CP = @cp@
++MKPATH = @mkpath@
++POD2MAN = pod2man
++
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
+ PARROT = ../../parrot@exe@
++PBC_TO_EXE = ../../pbc_to_exe@exe@
+ CAT = $(PERL) -MExtUtils::Command -e cat
+ BUILD_DYNPMC = $(PERL) $(BUILD_DIR)/tools/build/dynpmc.pl
+ RECONFIGURE = $(PERL) $(BUILD_DIR)/tools/dev/reconfigure.pl
+-#CONDITIONED_LINE(darwin):
+-#CONDITIONED_LINE(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
+-#CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++#IF(darwin):
++#IF(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
++#IF(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
+
+ ## places to look for things
+ PARROT_DYNEXT = $(BUILD_DIR)/runtime/parrot/dynext
+-PGE_LIBRARY = $(BUILD_DIR)/runtime/parrot/library/PGE
++PARROT_LIB = $(BUILD_DIR)/runtime/parrot/library
++PGE_LIBRARY = $(PARROT_LIB)/PGE
++PCT = $(PARROT_LIB)/PCT.pbc
+ PERL6GRAMMAR = $(PGE_LIBRARY)/Perl6Grammar.pbc
+ NQP = $(BUILD_DIR)/compilers/nqp/nqp.pbc
+-PCT = $(BUILD_DIR)/runtime/parrot/library/PCT.pbc
+
+ PMC_DIR = src/pmc
+
+-all: APL.pbc
++build: APL.pbc
++
++all: APL.pbc Makefile APL@exe@ installable
+
+ APL_GROUP = $(PMC_DIR)/apl_group$(LOAD_EXT)
+
+@@ -42,11 +55,15 @@
+
+ PMCS = aplvector
+ PMC_SOURCES = $(PMC_DIR)/aplvector.pmc
++DOCS = MAINTAINER README STATUS
+
+ # the default target
+-APL.pbc: $(PARROT) $(SOURCES) $(APL_GROUP)
++APL.pbc: $(SOURCES) $(APL_GROUP)
+ $(PARROT) $(PARROT_ARGS) -o APL.pbc APL.pir
+
++$(HLLNAME)@exe@: $(HLLNAME).pbc
++ $(PBC_TO_EXE) $(HLLNAME).pbc
++
+ src/gen_grammar.pir: $(PERL6GRAMMAR) src/parser/grammar.pg
+ $(PARROT) $(PARROT_ARGS) $(PERL6GRAMMAR) \
+ --encoding=utf8 \
+@@ -60,15 +77,23 @@
+ src/gen_builtins.pir: tools/gen_operator_defs.pl
+ $(PERL) tools/gen_operator_defs.pl >src/gen_builtins.pir
+
+-$(APL_GROUP): $(PARROT) $(PMC_SOURCES)
++$(APL_GROUP): $(PMC_SOURCES)
+ cd $(PMC_DIR) && $(BUILD_DYNPMC) generate $(PMCS)
+ cd $(PMC_DIR) && $(BUILD_DYNPMC) compile $(PMCS)
+ cd $(PMC_DIR) && $(BUILD_DYNPMC) linklibs $(PMCS)
+ cd $(PMC_DIR) && $(BUILD_DYNPMC) copy --destination=$(PARROT_DYNEXT) $(PMCS)
+
++installable : installable_$(HLLNAME)@exe@ $(ABC_GROUP) $(HLLNAME).pbc
++ $(CP) installable_$(HLLNAME)@exe@ $(BUILD_DIR)
++ $(CP) $(HLLNAME).pbc $(PARROT_LIB)/$(HLLNAME).pbc
++ cd $(PMC_DIR) && $(BUILD_DYNPMC) copy --destination=$(PARROT_DYNEXT) $(PMCS)
++
++installable_$(HLLNAME)@exe@: $(HLLNAME).pbc
++ $(PBC_TO_EXE) $(HLLNAME).pbc --install
++
+ # regenerate the Makefile
+ Makefile: config/makefiles/root.in
+- cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=APL
++ cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=$(HLLNAME)
+
+ # This is a listing of all targets, that are meant to be called by users
+ help:
+@@ -77,8 +102,11 @@
+ @echo ""
+ @echo " all: APL.pbc"
+ @echo " This is the default."
++ @echo " install: install the installable targets and docs."
++ @echo ""
+ @echo "Testing:"
+ @echo " test: Run the test suite."
++ @echo " test-installable: Test self-hosting targets."
+ @echo " testclean: Clean up test results."
+ @echo ""
+ @echo "Cleaning:"
+@@ -93,6 +121,18 @@
+ test: all
+ $(PERL) t/harness
+
++# TODO: test for installed libs, rename build_dir. basic run for missing libs
++test-installable : installable
++ ./installable_$(HLLNAME)@exe@ demo.apl
++
++install : installable
++ $(CP) installable_$(HLLNAME)@exe@ $(DESTDIR)$(BIN_DIR)/parrot-$(HLLNAME)@exe@
++ $(CP) $(HLLNAME).pbc $(DESTDIR)$(LIB_DIR)/parrot/library/$(HLLNAME).pbc
++ cd $(PMC_DIR) && $(BUILD_DYNPMC) copy "--destination=$(DESTDIR)$(LIB_DIR)/parrot/dynext" $(PMCS)
++ $(POD2MAN) $(HLLNAME).pir > $(DESTDIR)$(MANDIR)/man1/parrot-$(HLLNAME).1
++ $(MKPATH) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++ $(CP) $(DOCS) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++
+ testclean:
+ $(RM_F) t/*.pir
+
+@@ -101,6 +141,7 @@
+ src/gen_grammar.pir \
+ src/gen_actions.pir \
+ src/gen_builtins.pir \
++ $(PARROT_LIB)/$(HLLNAME).pbc \
+ $(PMC_DIR)/*.h \
+ $(PMC_DIR)/*.c \
+ $(PMC_DIR)/*.dump \
+@@ -111,6 +152,8 @@
+ $(PMC_DIR)/*.manifest \
+ $(PMC_DIR)/*.pdb \
+ $(PMC_DIR)/*.lib \
++ $(HLLNAME)@exe@ \
++ installable_$(HLLNAME)@exe@ \
+
+
+ clean: testclean
+@@ -121,4 +164,8 @@
+
+ distclean: realclean
+
+-
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/languages/BASIC/config/makefiles/root.in 1970-01-01 00:00:00.000000000 +0000
++++ src/parrot-0.8.2/languages/BASIC/config/makefiles/root.in 2008-12-25 13:44:20.475250000 +0000
+@@ -0,0 +1,131 @@
++## $Id: root.in 31315 2008-09-21 14:25:18Z rurban $
++
++## arguments we want to run parrot with
++PARROT_ARGS =
++
++## configuration settings
++HLLNAME = BASIC
++BUILD_DIR = @build_dir@
++LOAD_EXT = @load_ext@
++O = @o@
++BIN_DIR = @bin_dir@
++LIB_DIR = @lib_dir@
++DOC_DIR = @doc_dir@
++MANDIR = @mandir@
++
++## Setup some commands
++LN_S = @lns@
++PERL = @perl@
++RM_F = @rm_f@
++CP = @cp@
++MKPATH = @mkpath@
++POD2MAN = pod2man
++
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
++PARROT = ../../parrot@exe@
++PBC_TO_EXE = ../../pbc_to_exe@exe@
++CAT = $(PERL) -MExtUtils::Command -e cat
++RECONFIGURE = $(PERL) $(BUILD_DIR)/tools/dev/reconfigure.pl
++#IF(darwin):
++#IF(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
++#IF(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++
++## places to look for things
++PARROT_DYNEXT = $(BUILD_DIR)/runtime/parrot/dynext
++PARROT_LIB = $(BUILD_DIR)/runtime/parrot/library
++PGE_LIBRARY = $(PARROT_LIB)/PGE
++PCT = $(PARROT_LIB)/PCT.pbc
++PERL6GRAMMAR = $(PGE_LIBRARY)/Perl6Grammar.pbc
++NQP = $(BUILD_DIR)/compilers/nqp/nqp.pbc
++
++build: $(HLLNAME).pbc
++
++all: $(HLLNAME).pbc Makefile $(HLLNAME)@exe@ installable
++
++SOURCES = compiler/APL.pir \
++ src/gen_grammar.pir \
++ src/gen_actions.pir \
++ src/gen_builtins.pir
++
++DOCS = MAINTAINER compiler/BASIC_README
++
++# the default target
++$(HLLNAME).pbc: $(SOURCES)
++ $(PARROT) $(PARROT_ARGS) -o $(HLLNAME).pbc $(HLLNAME).pir
++
++$(HLLNAME)@exe@: $(HLLNAME).pbc
++ $(PBC_TO_EXE) $(HLLNAME).pbc
++
++installable : installable_$(HLLNAME)@exe@ $(HLLNAME).pbc
++ $(CP) installable_$(HLLNAME)@exe@ $(BUILD_DIR)
++ $(CP) $(HLLNAME).pbc $(PARROT_LIB)/$(HLLNAME).pbc
++
++installable_$(HLLNAME)@exe@: $(HLLNAME).pbc
++ $(PBC_TO_EXE) $(HLLNAME).pbc --install
++
++# regenerate the Makefile
++Makefile: config/makefiles/root.in
++ cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=$(HLLNAME)
++
++# This is a listing of all targets, that are meant to be called by users
++help:
++ @echo ""
++ @echo "Following targets are available for the user:"
++ @echo ""
++ @echo " all: BASIC.pbc"
++ @echo " This is the default."
++ @echo " install: install the installable targets and docs."
++ @echo ""
++ @echo "Testing:"
++ @echo " test: Run the test suite."
++ @echo " test-installable: Test self-hosting targets."
++ @echo " testclean: Clean up test results."
++ @echo ""
++ @echo "Cleaning:"
++ @echo " clean: Basic cleaning up."
++ @echo " realclean: Removes also files generated by 'Configure.pl'"
++ @echo " distclean: Removes also anything built, in theory"
++ @echo ""
++ @echo "Misc:"
++ @echo " help: Print this help message."
++ @echo ""
++
++test: all
++ $(PERL) t/harness
++
++# TODO: test for installed libs, rename build_dir. basic run for missing libs
++test-installable : installable
++ ./installable_$(HLLNAME)@exe@ readme.bas
++
++install : installable
++ $(CP) installable_$(HLLNAME)@exe@ $(DESTDIR)$(BIN_DIR)/parrot-$(HLLNAME)@exe@
++ $(CP) $(HLLNAME).pbc $(DESTDIR)$(LIB_DIR)/parrot/library/$(HLLNAME).pbc
++ $(POD2MAN) $(HLLNAME).pir > $(DESTDIR)$(MANDIR)/man1/parrot-$(HLLNAME).1
++ $(MKPATH) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++ $(CP) $(DOCS) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++
++testclean:
++ $(RM_F) t/*.pir
++
++CLEANUPS = \
++ $(HLLNAME).pbc \
++ src/gen_grammar.pir \
++ src/gen_actions.pir \
++ src/gen_builtins.pir \
++ $(PARROT_LIB)/$(HLLNAME).pbc \
++ $(HLLNAME)@exe@ \
++ installable_$(HLLNAME)@exe@
++
++clean: testclean
++ $(RM_F) $(CLEANUPS)
++
++realclean: clean
++ $(RM_F) Makefile
++
++distclean: realclean
++
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/languages/PIR/config/makefiles/root.in 2008-06-23 02:30:46.000000000 +0000
++++ src/parrot-0.8.2/languages/PIR/config/makefiles/root.in 2008-12-25 13:44:20.553375000 +0000
+@@ -13,13 +13,18 @@
+ PERL = @perl@
+ RM_RF = @rm_rf@
+ CP = @cp@
++MKPATH = @mkpath@
++POD2MAN = pod2man
++
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
+ PARROT = ../../parrot@exe@
++PBC_TO_EXE = ../../pbc_to_exe@exe@
+ CAT = $(PERL) -MExtUtils::Command -e cat
+ BUILD_DYNPMC = $(PERL) $(BUILD_DIR)/tools/build/dynpmc.pl
+ RECONFIGURE = $(PERL) $(BUILD_DIR)/tools/dev/reconfigure.pl
+-#CONDITIONED_LINE(darwin):
+-#CONDITIONED_LINE(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
+-#CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++#IF(darwin):
++#IF(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
++#IF(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
+
+ ## places to look for things
+ PARROT_DYNEXT = $(BUILD_DIR)/runtime/parrot/dynext
+@@ -52,7 +57,7 @@
+ src/pasm/gen_pasm_core.pbc
+
+ # the default target
+-pirc.pbc: $(PARROT) $(SOURCES) $(PASMGRAMMAR)
++pirc.pbc: $(SOURCES) $(PASMGRAMMAR)
+ $(PARROT) $(PARROT_ARGS) -o pirc.pbc pirc.pir
+
+ src/gen_grammar.pir: $(PERL6GRAMMAR) src/pir.pg
+@@ -102,7 +107,7 @@
+
+ src/pasm/gen_pasm_args.pbc: src/pasm/gen_pasm_args.pir
+ $(PARROT) --output-pbc -o src/pasm/gen_pasm_args.pbc src/pasm/gen_pasm_args.pir
+-
++
+ src/pasm/gen_pasm_io.pbc: src/pasm/gen_pasm_io.pir
+ $(PARROT) --output-pbc -o src/pasm/gen_pasm_io.pbc src/pasm/gen_pasm_io.pir
+
+@@ -111,7 +116,7 @@
+
+ src/pasm/gen_pasm_core.pbc: src/pasm/gen_pasm_core.pir
+ $(PARROT) --output-pbc -o src/pasm/gen_pasm_core.pbc src/pasm/gen_pasm_core.pir
+-
++
+ # regenerate the Makefile
+ Makefile: config/makefiles/root.in
+ cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=PIR
+@@ -177,3 +182,9 @@
+ $(RM_RF) Makefile
+
+ distclean: realclean
++
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/languages/WMLScript/WMLScript/wmlsconsole.pir 1970-01-01 00:00:00.000000000 +0000
++++ src/parrot-0.8.2/languages/WMLScript/WMLScript/wmlsconsole.pir 2008-12-25 13:44:20.569000000 +0000
+@@ -0,0 +1,101 @@
++# Copyright (C) 2006-2008, The Perl Foundation.
++# $Id: /mirror/trunk/languages/WMLScript/runtime/wmlsconsole.pir 33752 2008-12-09T18:54:29.527603Z fperrad $
++
++=head1 NAME
++
++runtime/wmlsconsole.pir - WMLScript Console library
++
++=head1 DESCRIPTION
++
++See "WMLScript Reference UP.SDK R4.B3 - October 1999".
++
++=head1 FUNCTIONS
++
++=cut
++
++.HLL 'WMLScript'
++.loadlib 'wmls_group'
++.loadlib 'wmls_ops'
++
++
++.sub 'getConsole'
++ new $P0, 'Hash'
++
++ .const 'Sub' _console_print = '_console_print'
++ $P0[0] = _console_print
++ .const 'Sub' _console_println = '_console_println'
++ $P0[1] = _console_println
++
++ .return ($P0)
++.end
++
++
++=head2 C<print(string)>
++
++=head3 DESCRIPTION
++
++
++=head3 PARAMETERS
++
++string = String
++
++=head3 RETURN VALUE
++
++Number or invalid.
++
++=cut
++
++.sub '_console_print' :anon
++ .param pmc str
++ .local pmc res
++ $I0 = isa str, 'WmlsInvalid'
++ if $I0 goto L1
++ $S0 = str
++ print $S0
++ $I0 = length $S0
++ box res, $I0
++ goto L2
++ L1:
++ new res, 'WmlsInvalid'
++ L2:
++ .return (res)
++.end
++
++
++=head2 C<println(string)>
++
++=head3 DESCRIPTION
++
++
++=head3 PARAMETERS
++
++string = String
++
++=head3 RETURN VALUE
++
++Number or invalid.
++
++=cut
++
++.sub '_console_println' :anon
++ .param pmc str
++ .local pmc res
++ $I0 = isa str, 'WmlsInvalid'
++ if $I0 goto L1
++ $S0 = str
++ say $S0
++ $I0 = length $S0
++ box res, $I0
++ goto L2
++ L1:
++ new res, 'WmlsInvalid'
++ L2:
++ .return (res)
++.end
++
++
++# Local Variables:
++# mode: pir
++# fill-column: 100
++# End:
++# vim: expandtab shiftwidth=4 ft=pir:
+--- origsrc/parrot-0.8.2/languages/WMLScript/WMLScript/wmlsfloat.pir 1970-01-01 00:00:00.000000000 +0000
++++ src/parrot-0.8.2/languages/WMLScript/WMLScript/wmlsfloat.pir 2008-12-25 13:44:20.569000000 +0000
+@@ -0,0 +1,355 @@
++# Copyright (C) 2006-2008, The Perl Foundation.
++# $Id: /mirror/trunk/languages/WMLScript/runtime/wmlsfloat.pir 33686 2008-12-08T15:50:21.922911Z fperrad $
++
++=head1 NAME
++
++runtime/wmlsfloat.pir - WMLScript Float library
++
++=head1 DESCRIPTION
++
++This library contains a set of typical arithmetic floating-point functions that
++are frequently used by applications.
++
++See "WMLScript Standard Libraries Specification", section 8 "Float".
++
++=head1 FUNCTIONS
++
++=cut
++
++.HLL 'WMLScript'
++.loadlib 'wmls_group'
++.loadlib 'wmls_ops'
++
++
++.sub 'getFloat'
++ new $P0, 'Hash'
++
++ .const 'Sub' _float_int = '_float_int'
++ $P0[0] = _float_int
++ .const 'Sub' _float_floor = '_float_floor'
++ $P0[1] = _float_floor
++ .const 'Sub' _float_ceil = '_float_ceil'
++ $P0[2] = _float_ceil
++ .const 'Sub' _float_pow = '_float_pow'
++ $P0[3] = _float_pow
++ .const 'Sub' _float_round = '_float_round'
++ $P0[4] = _float_round
++ .const 'Sub' _float_sqrt = '_float_sqrt'
++ $P0[5] = _float_sqrt
++ .const 'Sub' _float_maxFloat = '_float_maxFloat'
++ $P0[6] = _float_maxFloat
++ .const 'Sub' _float_minFloat = '_float_minFloat'
++ $P0[7] = _float_minFloat
++
++ .return ($P0)
++.end
++
++
++=head2 C<int(value)>
++
++=head3 DESCRIPTION
++
++Returns the integer part of the given value. If the value is already an integer,
++the result is the value itself.
++
++=head3 PARAMETERS
++
++value = Number
++
++=head3 RETURN VALUE
++
++Integer or invalid.
++
++=cut
++
++.sub '_float_int' :anon
++ .param pmc value
++ .local pmc res
++ $P0 = value
++ $I0 = isa value, 'WmlsString'
++ unless $I0 goto L1
++ $P0 = value.'parseNumber'()
++ L1:
++ $I0 = isa $P0, 'WmlsInvalid'
++ if $I0 goto L2
++ $I0 = $P0
++ box res, $I0
++ goto L3
++ L2:
++ new res, 'WmlsInvalid'
++ L3:
++ .return (res)
++.end
++
++
++=head2 C<floor(value)>
++
++=head3 DESCRIPTION
++
++Returns the greatest integer value that is not greater than the given value. If
++the value is already an integer, the result is the value itself.
++
++=head3 PARAMETERS
++
++value = Number
++
++=head3 RETURN VALUE
++
++Integer or invalid.
++
++=cut
++
++.sub '_float_floor' :anon
++ .param pmc value
++ .local pmc res
++ $P0 = value
++ $I0 = isa value, 'WmlsString'
++ unless $I0 goto L1
++ $P0 = value.'parseNumber'()
++ L1:
++ $I0 = isa $P0, 'WmlsInvalid'
++ if $I0 goto L2
++ $N0 = $P0
++ $I0 = floor $N0
++ box res, $I0
++ goto L3
++ L2:
++ new res, 'WmlsInvalid'
++ L3:
++ .return (res)
++.end
++
++
++=head2 C<ceil(value)>
++
++=head3 DESCRIPTION
++
++Returns the smallest integer value that is not less than the given value. If
++the value is already an integer, the result is the value itself.
++
++=head3 PARAMETERS
++
++value = Number
++
++=head3 RETURN VALUE
++
++Integer or invalid.
++
++=cut
++
++.sub '_float_ceil' :anon
++ .param pmc value
++ .local pmc res
++ $P0 = value
++ $I0 = isa value, 'WmlsString'
++ unless $I0 goto L1
++ $P0 = value.'parseNumber'()
++ L1:
++ $I0 = isa $P0, 'WmlsInvalid'
++ if $I0 goto L2
++ $N0 = $P0
++ $I0 = ceil $N0
++ box res, $I0
++ goto L3
++ L2:
++ new res, 'WmlsInvalid'
++ L3:
++ .return (res)
++.end
++
++
++=head2 C<pow(value1, value2)>
++
++=head3 DESCRIPTION
++
++Returns an implementation-dependent approximation to the result of raising
++value1 to the power of value2. If value1 is a negative number then value2
++must be an integer.
++
++=head3 PARAMETERS
++
++value1 = Number
++
++value2 = Number
++
++=head3 RETURN VALUE
++
++Floating-point or invalid.
++
++=head3 EXCEPTIONS
++
++If value1 == 0 and value2 < 0 then C<invalid> is returned.
++
++If value1 < 0 and value2 is not an integer then C<invalid> is returned.
++
++=cut
++
++.sub '_float_pow' :anon
++ .param pmc value1
++ .param pmc value2
++ .local pmc res
++ $P1 = value1
++ $I0 = isa value1, 'WmlsString'
++ unless $I0 goto L1
++ $P1 = value1.'parseNumber'()
++ L1:
++ $I0 = isa $P1, 'WmlsInvalid'
++ if $I0 goto L2
++ $N1 = $P1
++ $P2 = value2
++ $I0 = isa value2, 'WmlsString'
++ unless $I0 goto L3
++ $P2 = value2.'parseNumber'()
++ L3:
++ $I0 = isa $P2, 'WmlsInvalid'
++ if $I0 goto L2
++ $N2 = $P2
++ unless $N1 == 0.0 goto L4
++ if $N2 < 0.0 goto L2
++ box res, 0.0
++ goto L5
++ L4:
++ unless $N1 < 0.0 goto L6
++ $I0 = isa $P2, 'WmlsFloat'
++ if $I0 goto L2
++ L6:
++ $N0 = pow $N1, $N2
++ box res, $N0
++ goto L5
++ L2:
++ new res, 'WmlsInvalid'
++ L5:
++ .return (res)
++.end
++
++
++=head2 C<round(value)>
++
++=head3 DESCRIPTION
++
++Returns the number value that is closest to the given value and is equal to a
++mathematical integer. If two integer number values are equally close to the
++value, the result is the larger number value. If the value is already an
++integer, the result is the value itself.
++
++=head3 PARAMETERS
++
++value = Number
++
++=head3 RETURN VALUE
++
++Integer or invalid.
++
++=cut
++
++.sub '_float_round' :anon
++ .param pmc value
++ .local pmc res
++ $P0 = value
++ $I0 = isa value, 'WmlsString'
++ unless $I0 goto L1
++ $P0 = value.'parseNumber'()
++ L1:
++ $I0 = isa $P0, 'WmlsInvalid'
++ if $I0 goto L2
++ $N0 = $P0
++ $N0 += 0.5
++ $I0 = floor $N0
++ box res, $I0
++ goto L3
++ L2:
++ new res, 'WmlsInvalid'
++ L3:
++ .return (res)
++.end
++
++
++=head2 C<sqrt(value)>
++
++=head3 DESCRIPTION
++
++Returns an implementation-dependent approximation to the square root of
++the given value.
++
++=head3 PARAMETERS
++
++value = Floating-point
++
++=head3 RETURN VALUE
++
++Floating-point or invalid.
++
++=head3 EXCEPTIONS
++
++If value is a negative number then invalid is returned.
++
++=cut
++
++.sub '_float_sqrt' :anon
++ .param pmc value
++ .local pmc res
++ $P0 = value
++ $I0 = isa value, 'WmlsString'
++ unless $I0 goto L1
++ $P0 = value.'parseNumber'()
++ L1:
++ $I0 = isa $P0, 'WmlsInvalid'
++ if $I0 goto L2
++ $N0 = $P0
++ if $N0 < 0.0 goto L2
++ $N1 = sqrt $N0
++ box res, $N1
++ goto L3
++ L2:
++ new res, 'WmlsInvalid'
++ L3:
++ .return (res)
++.end
++
++
++=head2 C<maxFloat()>
++
++=head3 DESCRIPTION
++
++Returns the maximum floating-point value supported by [IEEE754] single
++precision floating-point format.
++
++=head3 RETURN VALUE
++
++Floating-point 3.40282347e+38.
++
++=cut
++
++.sub '_float_maxFloat' :anon
++ .local pmc res
++ box res, 3.40282347e+38
++ .return (res)
++.end
++
++
++=head2 C<minFloat()>
++
++=head3 DESCRIPTION
++
++Returns the smallest nonzero floating-point value supported by [IEEE754]
++single precision floating-point format.
++
++=head3 RETURN VALUE
++
++Floating-point. Smaller than or equal to the normalised minimum single
++precision floating-point value: 1.17549435e-38.
++
++=cut
++
++.sub '_float_minFloat' :anon
++ .local pmc res
++ box res, 1.17549435e-38
++ .return (res)
++.end
++
++
++# Local Variables:
++# mode: pir
++# fill-column: 100
++# End:
++# vim: expandtab shiftwidth=4 ft=pir:
+--- origsrc/parrot-0.8.2/languages/WMLScript/WMLScript/wmlslang.pir 1970-01-01 00:00:00.000000000 +0000
++++ src/parrot-0.8.2/languages/WMLScript/WMLScript/wmlslang.pir 2008-12-25 13:44:20.569000000 +0000
+@@ -0,0 +1,663 @@
++# Copyright (C) 2006-2008, The Perl Foundation.
++# $Id: /mirror/trunk/languages/WMLScript/runtime/wmlslang.pir 33686 2008-12-08T15:50:21.922911Z fperrad $
++
++=head1 NAME
++
++runtime/wmlslang.pir - WMLScript Lang library
++
++=head1 DESCRIPTION
++
++This library contains a set of functions that are closely related to the
++WMLScript language core.
++
++See "WMLScript Standard Libraries Specification", section 7 "Lang".
++
++=head1 FUNCTIONS
++
++=cut
++
++.HLL 'WMLScript'
++.loadlib 'wmls_group'
++.loadlib 'wmls_ops'
++
++
++.sub 'getLang'
++ new $P0, 'Hash'
++
++ .const 'Sub' _lang_abs = '_lang_abs'
++ $P0[0] = _lang_abs
++ .const 'Sub' _lang_min = '_lang_min'
++ $P0[1] = _lang_min
++ .const 'Sub' _lang_max = '_lang_max'
++ $P0[2] = _lang_max
++ .const 'Sub' _lang_parseInt = '_lang_parseInt'
++ $P0[3] = _lang_parseInt
++ .const 'Sub' _lang_parseFloat = '_lang_parseFloat'
++ $P0[4] = _lang_parseFloat
++ .const 'Sub' _lang_isInt = '_lang_isInt'
++ $P0[5] = _lang_isInt
++ .const 'Sub' _lang_isFloat = '_lang_isFloat'
++ $P0[6] = _lang_isFloat
++ .const 'Sub' _lang_maxInt = '_lang_maxInt'
++ $P0[7] = _lang_maxInt
++ .const 'Sub' _lang_minInt = '_lang_minInt'
++ $P0[8] = _lang_minInt
++ .const 'Sub' _lang_float = '_lang_float'
++ $P0[9] = _lang_float
++ .const 'Sub' _lang_exit = '_lang_exit'
++ $P0[10] = _lang_exit
++ .const 'Sub' _lang_abort = '_lang_abort'
++ $P0[11] = _lang_abort
++ .const 'Sub' _lang_random = '_lang_random'
++ $P0[12] = _lang_random
++ .const 'Sub' _lang_seed = '_lang_seed'
++ $P0[13] = _lang_seed
++ .const 'Sub' _lang_characterSet = '_lang_characterSet'
++ $P0[14] = _lang_characterSet
++
++ .return ($P0)
++.end
++
++
++=head2 C<abs(value)>
++
++=head3 DESCRIPTION
++
++Returns the absolute value of the given number. If the given number is of
++type integer then an integer value is returned. If the given number is of type
++floating-point then a floating-point value is returned.
++
++=head3 PARAMETERS
++
++value = Number
++
++=head3 RETURN VALUE
++
++Number or invalid.
++
++=cut
++
++.sub '_lang_abs' :anon
++ .param pmc value
++ .local pmc res
++ res = clone value
++ res = abs value
++ .return (res)
++.end
++
++
++=head2 C<min(value1, value2)>
++
++=head3 DESCRIPTION
++
++Returns the minimum value of the given two numbers. The value and type
++returned is the same as the value and type of the selected number. The
++selection is done in the following way:
++
++=over 4
++
++=item *
++
++WMLScript operator data type conversion rules for I<integers and
++floating-points> (see [WMLScript]) must be used to specify the data
++type (integer or floating-point ) for comparison.
++
++=item *
++
++Compare the numbers to select the smaller one.
++
++=item *
++
++If the values are equal then the first value is selected.
++
++=back
++
++=head3 PARAMETERS
++
++value1 = Number
++
++value2 = Number
++
++=head3 RETURN VALUE
++
++Number or invalid.
++
++=cut
++
++.sub '_lang_min' :anon
++ .param pmc value1
++ .param pmc value2
++ .local pmc res
++ $P1 = value1
++ $I0 = isa value1, 'WmlsString'
++ unless $I0 goto L1
++ $P1 = value1.'parseNumber'()
++ L1:
++ $P2 = value2
++ $I0 = isa value2, 'WmlsString'
++ unless $I0 goto L2
++ $P2 = value2.'parseNumber'()
++ L2:
++ $P0 = isle $P1, $P2
++ $I0 = isa $P0, 'WmlsInvalid'
++ unless $I0 goto L3
++ .return ($P0)
++ L3:
++ $I0 = $P0
++ unless $I0 goto L4
++ res = clone value1
++ goto L5
++ L4:
++ res = clone value2
++ L5:
++ .return (res)
++.end
++
++
++=head2 C<max(value1, value2)>
++
++=head3 DESCRIPTION
++
++Returns the maximum value of the given two numbers. The value and type
++returned is the same as the value and type of the selected number. The
++selection is done in the following way:
++
++=over 4
++
++=item *
++
++WMLScript operator data type conversion rules for I<integers and
++floating-points> (see [WMLScript]) must be used to specify the data
++type (integer or floating-point ) for comparison.
++
++=item *
++
++Compare the numbers to select the larger one.
++
++=item *
++
++If the values are equal then the first value is selected.
++
++=back
++
++=head3 PARAMETERS
++
++value1 = Number
++
++value2 = Number
++
++=head3 RETURN VALUE
++
++Number or invalid.
++
++=cut
++
++.sub '_lang_max' :anon
++ .param pmc value1
++ .param pmc value2
++ .local pmc res
++ $P1 = value1
++ $I0 = isa value1, 'WmlsString'
++ unless $I0 goto L1
++ $P1 = value1.'parseNumber'()
++ L1:
++ $P2 = value2
++ $I0 = isa value2, 'WmlsString'
++ unless $I0 goto L2
++ $P2 = value2.'parseNumber'()
++ L2:
++ $P0 = isge $P1, $P2
++ $I0 = isa $P0, 'WmlsInvalid'
++ unless $I0 goto L3
++ .return ($P0)
++ L3:
++ $I0 = $P0
++ unless $I0 goto L4
++ res = clone value1
++ goto L5
++ L4:
++ res = clone value2
++ L5:
++ .return (res)
++.end
++
++
++=head2 C<parseInt(value)>
++
++=head3 DESCRIPTION
++
++Returns an integer value defined by the string value. The legal integer
++syntax is specified by the WMLScript (see [WMLScript]) numeric string
++grammar for I<decimal integer literals> with the following additional parsing
++rule:
++
++=over 4
++
++=item *
++
++Parsing ends when the first character is encountered that is not a
++leading '+' or '-' or a decimal digit.
++
++=back
++
++The result is the parsed string converted to an integer value.
++
++=head3 PARAMETERS
++
++value = String
++
++=head3 RETURN VALUE
++
++Integer or invalid.
++
++=head3 EXCEPTIONS
++
++In case of a parsing error an C<invalid> value is returned.
++
++=cut
++
++.sub '_lang_parseInt' :anon
++ .param pmc value
++ .local pmc res
++ $I0 = isa value, 'WmlsString'
++ unless $I0 goto L1
++ res = value.'parseInt'()
++ .return (res)
++ L1:
++ res = value
++ $I0 = isa value, 'WmlsInteger'
++ if $I0 goto L2
++ new res, 'WmlsInvalid'
++ L2:
++ .return (res)
++.end
++
++
++=head2 C<parseFloat(value)>
++
++=head3 DESCRIPTION
++
++Returns a floating-point value defined by the string value. The legal floatingpoint
++syntax is specified by the WMLScript (see [WMLScript]) numeric
++string grammar for I<decimal floating-point literals> with the following additional
++parsing rule:
++
++=over 4
++
++=item *
++
++Parsing ends when the first character is encountered that cannot
++be parsed as being part of the floating-point representation.
++
++=back
++
++The result is the parsed string converted to a floating-point value.
++
++=head3 PARAMETERS
++
++value = String
++
++=head3 RETURN VALUE
++
++Floating-point or invalid.
++
++=head3 EXCEPTIONS
++
++In case of a parsing error an C<invalid> value is returned.
++
++=cut
++
++.sub '_lang_parseFloat' :anon
++ .param pmc value
++ .local pmc res
++ $I0 = isa value, 'WmlsString'
++ unless $I0 goto L1
++ res = value.'parseFloat'()
++ .return (res)
++ L1:
++ res = value
++ $I0 = isa value, 'WmlsFloat'
++ if $I0 goto L2
++ $I0 = isa value, 'WmlsInteger'
++ unless $I0 goto L3
++ $I0 = value
++ new res, 'WmlsFloat'
++ set res, $I0
++ goto L2
++ L3:
++ new res, 'WmlsInvalid'
++ L2:
++ .return (res)
++.end
++
++
++=head2 C<isInt(value)>
++
++=head3 DESCRIPTION
++
++Returns a boolean value that is C<true> if the given value can be converted
++into an integer number by using parseInt(value). Otherwise C<false> is
++returned.
++
++=head3 PARAMETERS
++
++value = Any
++
++=head3 RETURN VALUE
++
++Boolean or invalid.
++
++=cut
++
++.sub '_lang_isInt' :anon
++ .param pmc value
++ .local pmc res
++ $I0 = isa value, 'WmlsString'
++ unless $I0 goto L1
++ $P0 = value.'parseInt'()
++ res = defined $P0
++ .return (res)
++ L1:
++ $I0 = isa value, 'WmlsInvalid'
++ unless $I0 goto L2
++ new res, 'WmlsInvalid'
++ .return (res)
++ L2:
++ new res, 'WmlsBoolean'
++ $I0 = isa value, 'WmlsInteger'
++ set res, $I0
++ .return (res)
++.end
++
++
++=head2 C<isFloat(value)>
++
++=head3 DESCRIPTION
++
++Returns a boolean value that is C<true> if the given value can be converted
++into a floating-point number using parseFloat(value). Otherwise C<false> is
++returned.
++
++=head3 PARAMETERS
++
++value = Any
++
++=head3 RETURN VALUE
++
++Boolean or invalid.
++
++=cut
++
++.sub '_lang_isFloat' :anon
++ .param pmc value
++ .local pmc res
++ $I0 = isa value, 'WmlsString'
++ unless $I0 goto L1
++ $P0 = value.'parseFloat'()
++ res = defined $P0
++ .return (res)
++ L1:
++ $I0 = isa value, 'WmlsInvalid'
++ unless $I0 goto L2
++ new res, 'WmlsInvalid'
++ .return (res)
++ L2:
++ new res, 'WmlsBoolean'
++ $I0 = isa value, 'WmlsFloat'
++ set res, $I0
++ if $I0 goto L3
++ $I0 = isa value, 'WmlsInteger'
++ set res, $I0
++ L3:
++ .return (res)
++.end
++
++
++=head2 C<maxInt()>
++
++=head3 DESCRIPTION
++
++Returns the maximum integer value.
++
++=head3 RETURN VALUE
++
++Integer 2147483647.
++
++=cut
++
++.sub '_lang_maxInt' :anon
++ .local pmc res
++ box res, 2147483647
++ .return (res)
++.end
++
++
++=head2 C<minInt()>
++
++=head3 DESCRIPTION
++
++Returns the minimum integer value.
++
++=head3 RETURN VALUE
++
++Integer -2147483648.
++
++=cut
++
++.sub '_lang_minInt' :anon
++ .local pmc res
++ box res, -2147483648
++ .return (res)
++.end
++
++
++=head2 C<float()>
++
++=head3 DESCRIPTION
++
++Returns true if floating-points are supported and false if not.
++
++=head3 RETURN VALUE
++
++Boolean.
++
++=cut
++
++.sub '_lang_float' :anon
++ .local pmc res
++ new res, 'WmlsBoolean'
++ set res, 1
++ .return (res)
++.end
++
++
++=head2 C<exit(value)>
++
++=head3 DESCRIPTION
++
++Ends the interpretation of the WMLScript bytecode and returns the control
++back to the caller of the WMLScript interpreter with the given return value.
++This function can be used to perform a normal exit from a function in cases
++where the execution of the WMLScript bytecode should be discontinued.
++
++=head3 PARAMETERS
++
++value = Any
++
++=head3 RETURN VALUE
++
++None (this function ends the interpretation).
++
++=cut
++
++.sub '_lang_exit' :anon
++ .param pmc value
++ .local pmc res
++ $I0 = isa value, 'WmlsString'
++ unless $I0 goto L1
++ $P0 = value.'parseInt'()
++ $I0 = $P0
++ exit $I0
++ L1:
++ $I0 = value
++ exit $I0
++.end
++
++
++=head2 C<abort(errorDescription)>
++
++=head3 DESCRIPTION
++
++Aborts the interpretation of the WMLScript bytecode and returns the control
++back to the caller of the WMLScript interpreter with the return
++errorDescription. This function can be used to perform an abnormal exit in
++cases where the execution of the WMLScript should be discontinued due to
++serious errors detected by the program. If the type of the errorDescription is
++invalid, string "invalid" is used as the errorDescription instead.
++
++=head3 PARAMETERS
++
++errorDescription = String
++
++=head3 RETURN VALUE
++
++None (this function aborts the interpretation).
++
++=cut
++
++.sub '_lang_abort' :anon
++ .param pmc value
++ die value
++.end
++
++
++=head2 C<random(value)>
++
++=head3 DESCRIPTION
++
++Returns an integer value with positive sign that is greater than or equal to 0
++but less than or equal to the given value. The return value is chosen
++randomly or pseudo-randomly with approximately uniform distribution over
++that range, using an implementation-dependent algorithm or strategy.
++
++If the value is of type floating-point, Float.int() is first used to calculate the
++actual integer value.
++
++=head3 PARAMETERS
++
++value = Number
++
++=head3 RETURN VALUE
++
++Integer or invalid.
++
++=head3 EXCEPTIONS
++
++If value is equal to zero (0), the function returns zero.
++
++If value is less than zero (0), the function returns C<invalid>.
++
++=cut
++
++.sub '_lang_random' :anon
++ .param pmc value
++ .local pmc res
++ $P0 = value
++ $I0 = isa value, 'WmlsString'
++ unless $I0 goto L1
++ $P0 = value.'parseNumber'()
++ L1:
++ $I0 = isa $P0, 'WmlsInvalid'
++ if $I0 goto L2
++ $I0 = $P0
++ if $I0 < 0 goto L2
++ new $P0, 'Random'
++ $N0 = $P0
++ $N0 = mul $I0
++ $I0 = $N0
++ box res, $I0
++ goto L3
++ L2:
++ new res, 'WmlsInvalid'
++ L3:
++ .return (res)
++.end
++
++
++=head2 C<seed(value)>
++
++=head3 DESCRIPTION
++
++Initialises the pseudo-random number sequence and returns an empty
++string. If the value is zero or a positive integer then the given value is used
++for initialisation, otherwise a random, system dependent initialisation value
++is used. A seed value of greater than or equal to zero results in a repeatable
++sequence of pseudo-random numbers. A seed value of less than zero
++results in a non-repeatable sequence of random numbers.
++
++If the value is of type floating-point, Float.int() is first used to calculate the
++actual integer value. . If the value is non-numeric, invalid is returned and the
++current seed is unchanged.
++
++=head3 PARAMETERS
++
++value = Number
++
++=head3 RETURN VALUE
++
++String or invalid.
++
++=cut
++
++.sub '_lang_seed' :anon
++ .param pmc value
++ .local pmc res
++ $P0 = value
++ $I0 = isa value, 'WmlsString'
++ unless $I0 goto L1
++ $P0 = value.'parseNumber'()
++ L1:
++ $I0 = isa $P0, 'WmlsInvalid'
++ if $I0 goto L2
++ $I0 = $P0
++ if $I0 >= 0 goto L3
++ $I0 = time
++ L3:
++ new $P0, 'Random'
++ $P0 = $I0
++ new res, 'WmlsString'
++ set res, ''
++ goto L4
++ L2:
++ new res, 'WmlsInvalid'
++ L4:
++ .return (res)
++.end
++
++
++=head2 C<characterSet()>
++
++=head3 DESCRIPTION
++
++Returns the character set supported by the WMLScript Interpreter. The
++return value is an integer that denotes a MIBEnum value assigned by the
++IANA for all character sets (see [WSP] for more information).
++
++=head3 RETURN VALUE
++
++Integer.
++
++=cut
++
++.sub '_lang_characterSet' :anon
++ .local pmc res
++ box res, 4 # latin1
++ .return (res)
++.end
++
++
++# Local Variables:
++# mode: pir
++# fill-column: 100
++# End:
++# vim: expandtab shiftwidth=4 ft=pir:
+--- origsrc/parrot-0.8.2/languages/WMLScript/WMLScript/wmlsstring.pir 1970-01-01 00:00:00.000000000 +0000
++++ src/parrot-0.8.2/languages/WMLScript/WMLScript/wmlsstring.pir 2008-12-25 13:44:20.584625000 +0000
+@@ -0,0 +1,1101 @@
++# Copyright (C) 2006-2008, The Perl Foundation.
++# $Id: /mirror/trunk/languages/WMLScript/runtime/wmlsstring.pir 33686 2008-12-08T15:50:21.922911Z fperrad $
++
++=head1 NAME
++
++runtime/wmlsstring.pir - WMLScript String library
++
++=head1 DESCRIPTION
++
++This library contains a set of string functions. A string is an array of
++characters. Each of the characters has an index. The first character in a
++string has an index zero (0). The length of the string is the number of
++characters in the array.
++
++The user of the String library can specify a special separator by which
++elements in a string can be separated. These elements can be accessed
++by specifying the separator and the element index. The first element in a
++string has an index zero (0). Each occurrence of the separator in the string
++separates two elements (no escaping of separators is allowed).
++
++A White space character is one of the following characters:
++
++=over 4
++
++=item * TAB : Horizontal Tabulation
++
++=item * VT : Vertical Tabulation
++
++=item * FF : Form Feed
++
++=item * SP : Space
++
++=item * LF : Line Feed
++
++=item * CR : Carriage Return
++
++=back
++
++See "WMLScript Standard Libraries Specification", section 9 "String".
++
++=head1 FUNCTIONS
++
++=cut
++
++.HLL 'WMLScript'
++.loadlib 'wmls_group'
++.loadlib 'wmls_ops'
++
++
++.sub 'getString'
++ new $P0, 'Hash'
++
++ .const 'Sub' _string_length = '_string_length'
++ $P0[0] = _string_length
++ .const 'Sub' _string_isEmpty = '_string_isEmpty'
++ $P0[1] = _string_isEmpty
++ .const 'Sub' _string_charAt = '_string_charAt'
++ $P0[2] = _string_charAt
++ .const 'Sub' _string_subString = '_string_subString'
++ $P0[3] = _string_subString
++ .const 'Sub' _string_find = '_string_find'
++ $P0[4] = _string_find
++ .const 'Sub' _string_replace = '_string_replace'
++ $P0[5] = _string_replace
++ .const 'Sub' _string_elements = '_string_elements'
++ $P0[6] = _string_elements
++ .const 'Sub' _string_elementAt = '_string_elementAt'
++ $P0[7] = _string_elementAt
++ .const 'Sub' _string_removeAt = '_string_removeAt'
++ $P0[8] = _string_removeAt
++ .const 'Sub' _string_replaceAt = '_string_replaceAt'
++ $P0[9] = _string_replaceAt
++ .const 'Sub' _string_insertAt = '_string_insertAt'
++ $P0[10] = _string_insertAt
++ .const 'Sub' _string_squeeze = '_string_squeeze'
++ $P0[11] = _string_squeeze
++ .const 'Sub' _string_trim = '_string_trim'
++ $P0[12] = _string_trim
++ .const 'Sub' _string_compare = '_string_compare'
++ $P0[13] = _string_compare
++ .const 'Sub' _string_toString = '_string_toString'
++ $P0[14] = _string_toString
++ .const 'Sub' _string_format = '_string_format'
++ $P0[15] = _string_format
++
++ .return ($P0)
++.end
++
++
++=head2 C<length(string)>
++
++=head3 DESCRIPTION
++
++Returns the length (number of characters) of the given string.
++
++=head3 PARAMETERS
++
++string = String
++
++=head3 RETURN VALUE
++
++Integer or invalid.
++
++=cut
++
++.sub '_string_length' :anon
++ .param pmc str
++ .local pmc res
++ $I0 = isa str, 'WmlsInvalid'
++ if $I0 goto L1
++ $S1 = str
++ $I1 = length $S1
++ box res, $I1
++ .return (res)
++ L1:
++ new res, 'WmlsInvalid'
++ .return (res)
++.end
++
++
++=head2 C<isEmpty(string)>
++
++=head3 DESCRIPTION
++
++Returns a boolean true if the string length is zero and boolean false
++otherwise.
++
++=head3 PARAMETERS
++
++string = String
++
++=head3 RETURN VALUE
++
++Boolean or invalid.
++
++=cut
++
++.sub '_string_isEmpty' :anon
++ .param pmc str
++ .local pmc res
++ $I0 = isa str, 'WmlsInvalid'
++ if $I0 goto L1
++ $S1 = str
++ $I1 = length $S1
++ new res, 'WmlsBoolean'
++ set res, 0
++ if $I1 goto L2
++ set res, 1
++ L2:
++ .return (res)
++ L1:
++ new res, 'WmlsInvalid'
++ .return (res)
++.end
++
++
++=head2 C<charAt(string, index)>
++
++=head3 DESCRIPTION
++
++Returns a new string of length one containing the character at the specified
++index of the given string.
++
++If the index is of type floating-point, Float.int() is first used to calculate the
++actual integer index.
++
++=head3 PARAMETERS
++
++string = String
++
++index = Number (the index of the character to be returned)
++
++=head3 RETURN VALUE
++
++String or invalid.
++
++=head3 EXCEPTIONS
++
++If index is out of range then an empty string (C<"">) is returned.
++
++=cut
++
++.sub '_string_charAt' :anon
++ .param pmc str
++ .param pmc index_
++ .local pmc res
++ $I0 = isa str, 'WmlsInvalid'
++ if $I0 goto L1
++ $I0 = isa index_, 'WmlsInteger'
++ if $I0 goto L2
++ $I0 = isa index_, 'WmlsFloat'
++ if $I0 goto L2
++ goto L1
++ L2:
++ $S1 = str
++ $I1 = length $S1
++ $I2 = index_
++ if $I2 < 0 goto L3
++ if $I2 >= $I1 goto L3
++ $S0 = substr $S1, $I2, 1
++ box res, $S0
++ .return (res)
++ L3:
++ new res, 'WmlsString'
++ .return (res)
++ L1:
++ new res, 'WmlsInvalid'
++ .return (res)
++.end
++
++
++=head2 C<subString(string, startIndex, length)>
++
++=head3 DESCRIPTION
++
++Returns a new string that is a substring of the given string. The substring
++begins at the specified startIndex and its length (number of characters) is
++the given length. If the startIndex is less than 0 then 0 is used for the
++startIndex. If the length is larger than the remaining number of characters in
++the string, the length is replaced with the number of remaining characters.
++
++If the startIndex or the length is of type floating-point, Float.int() is first used to
++calculate the actual integer value.
++
++=head3 PARAMETERS
++
++string = String
++
++startIndex = Number (the beginning index, inclusive)
++
++length = Number (the length of the substring)
++
++=head3 RETURN VALUE
++
++String or invalid.
++
++=head3 EXCEPTIONS
++
++If startIndex is larger than the last index an empty string (C<"">) is returned.
++
++If length <= 0 an empty string (C<"">) is returned.
++
++=cut
++
++.sub '_string_subString' :anon
++ .param pmc String
++ .param pmc startIndex
++ .param pmc Length
++ .local pmc res
++ $I0 = isa String, 'WmlsInvalid'
++ if $I0 goto L1
++ $I0 = isa startIndex, 'WmlsInteger'
++ if $I0 goto L2
++ $I0 = isa startIndex, 'WmlsFloat'
++ if $I0 goto L2
++ goto L1
++ L2:
++ $I0 = isa Length, 'WmlsInteger'
++ if $I0 goto L3
++ $I0 = isa Length, 'WmlsFloat'
++ if $I0 goto L3
++ goto L1
++ L3:
++ $S1 = String
++ $I1 = length $S1
++ $I2 = startIndex
++ if $I2 >= 0 goto L4
++ $I2 = 0
++ L4:
++ if $I2 >= $I1 goto L5
++ $I3 = Length
++ if $I3 <= 0 goto L5
++ $S0 = substr $S1, $I2, $I3
++ box res, $S0
++ .return (res)
++ L5:
++ new res, 'WmlsString'
++ .return (res)
++ L1:
++ new res, 'WmlsInvalid'
++ .return (res)
++.end
++
++
++=head2 C<find(string, subString)>
++
++=head3 DESCRIPTION
++
++Returns the index of the first character in the string that matches the
++requested subString. If no match is found integer value -1 is returned.
++
++Two strings are defined to match when they are identical. Characters with
++multiple possible representations match only if they have the same
++representation in both strings. No case folding is performed.
++
++=head3 PARAMETERS
++
++string = String
++
++subString = String
++
++=head3 RETURN VALUE
++
++Integer or invalid.
++
++=head3 EXCEPTIONS
++
++If subString is an empty string (C<"">), an invalid value is returned.
++
++=cut
++
++.sub '_string_find' :anon
++ .param pmc String
++ .param pmc subString
++ .local pmc res
++ $I0 = isa String, 'WmlsInvalid'
++ if $I0 goto L1
++ $I0 = isa subString, 'WmlsInvalid'
++ if $I0 goto L1
++ $S1 = String
++ $S2 = subString
++ $I2 = length $S2
++ if $I2 == 0 goto L1
++ $I0 = index $S1, $S2
++ box res, $I0
++ .return (res)
++ L1:
++ new res, 'WmlsInvalid'
++ .return (res)
++.end
++
++
++=head2 C<replace(string, oldSubString, newSubString)>
++
++=head3 DESCRIPTION
++
++Returns a new string resulting from replacing all occurrences of
++oldSubString in this string with newSubString.
++
++Two strings are defined to match when they are identical. Characters with
++multiple possible representations match only if they have the same
++representation in both strings. No case folding is performed.
++
++=head3 PARAMETERS
++
++string = String
++
++oldSubString = String
++
++newSubString = String
++
++=head3 RETURN VALUE
++
++String or invalid.
++
++=head3 EXCEPTIONS
++
++If oldSubString is an empty string an C<invalid> value is returned.
++
++=cut
++
++.sub '_string_replace' :anon
++ .param pmc String
++ .param pmc oldSubString
++ .param pmc newSubString
++ .local pmc res
++ $I0 = isa String, 'WmlsInvalid'
++ if $I0 goto L1
++ $I0 = isa oldSubString, 'WmlsInvalid'
++ if $I0 goto L1
++ $I0 = isa newSubString, 'WmlsInvalid'
++ if $I0 goto L1
++ $S1 = String
++ $S2 = oldSubString
++ $I2 = length $S2
++ if $I2 == 0 goto L1
++ $S3 = newSubString
++ $P0 = split $S2, $S1
++ $S0 = join $S3, $P0
++ box res, $S0
++ .return (res)
++ L1:
++ new res, 'WmlsInvalid'
++ .return (res)
++.end
++
++
++=head2 C<elements(string, separator)>
++
++=head3 DESCRIPTION
++
++Returns the number of elements in the given string separated by the given
++separator. Empty string ("") is a valid element (thus, this function can never
++return a value that is less or equal to zero).
++
++=head3 PARAMETERS
++
++string = String
++
++separator = String (the first character of the string used as separator)
++
++=head3 RETURN VALUE
++
++Integer or invalid.
++
++=head3 EXCEPTIONS
++
++Returns C<invalid> if the separator is an empty string.
++
++=cut
++
++.sub '_string_elements' :anon
++ .param pmc str
++ .param pmc separator
++ .local pmc res
++ $I0 = isa str, 'WmlsInvalid'
++ if $I0 goto L1
++ $I0 = isa separator, 'WmlsInvalid'
++ if $I0 goto L1
++ $S1 = str
++ $S2 = separator
++ $I2 = length $S2
++ if $I2 == 0 goto L1
++ $S2 = substr $S2, 0, 1
++ $I1 = length $S1
++ if $I1 != 0 goto L2
++ box res, 1
++ .return (res)
++ L2:
++ $P0 = split $S2, $S1
++ $I0 = elements $P0
++ box res, $I0
++ .return (res)
++ L1:
++ new res, 'WmlsInvalid'
++ .return (res)
++.end
++
++
++=head2 C<elementAt(string, index, separator)>
++
++=head3 DESCRIPTION
++
++Search string for index'th element, elements being separated by separator
++and return the corresponding element. If the index is less than 0 then the first
++element is returned. If the index is larger than the number of elements then
++the last element is returned. If the string is an empty string then an empty
++string is returned.
++
++If the index is of type floating-point, Float.int() is first used to calculate the
++actual index value.
++
++=head3 PARAMETERS
++
++string = String
++
++index = Number (the index of the element to be returned)
++
++separator = String (the first character of the string used as separator)
++
++=head3 RETURN VALUE
++
++String or invalid.
++
++=head3 EXCEPTIONS
++
++Returns C<invalid> if the separator is an empty string.
++
++=cut
++
++.sub '_string_elementAt' :anon
++ .param pmc str
++ .param pmc index_
++ .param pmc separator
++ .local pmc res
++ $I0 = isa str, 'WmlsInvalid'
++ if $I0 goto L1
++ $I0 = isa index_, 'WmlsInteger'
++ if $I0 goto L2
++ $I0 = isa index_, 'WmlsFloat'
++ if $I0 goto L2
++ goto L1
++ L2:
++ $I0 = isa separator, 'WmlsInvalid'
++ if $I0 goto L1
++ $S1 = str
++ $I2 = index_
++ if $I2 >= 0 goto L3
++ $I2 = 0
++ L3:
++ $S3 = separator
++ $I3 = length $S3
++ if $I3 == 0 goto L1
++ $S3 = substr $S3, 0, 1
++ $I1 = length $S1
++ if $I1 != 0 goto L4
++ new res, 'WmlsString'
++ .return (res)
++ L4:
++ $P0 = split $S3, $S1
++ $I0 = elements $P0
++ if $I2 < $I0 goto L5
++ $I2 = $I0 - 1
++ L5:
++ $S0 = $P0[$I2]
++ box res, $S0
++ .return (res)
++ L1:
++ new res, 'WmlsInvalid'
++ .return (res)
++.end
++
++
++=head2 C<removeAt(string, index, separator)>
++
++=head3 DESCRIPTION
++
++Returns a new string where the element and the corresponding separator (if
++existing) with the given index are removed from the given string. If the index
++is less than 0 then the first element is removed. If the index is larger than the
++number of elements then the last element is removed. If the string is empty,
++the function returns a new empty string.
++
++If the index is of type floating-point, Float.int() is first used to calculate the
++actual index value.
++
++=head3 PARAMETERS
++
++string = String
++
++index = Number (the index of the element to be deleted)
++
++separator = String (the first character of the string used as separator)
++
++=head3 RETURN VALUE
++
++String or invalid.
++
++=head3 EXCEPTIONS
++
++Returns C<invalid> if the separator is an empty string.
++
++=cut
++
++.sub '_string_removeAt' :anon
++ .param pmc str
++ .param pmc index_
++ .param pmc separator
++ .local pmc res
++ $I0 = isa str, 'WmlsInvalid'
++ if $I0 goto L1
++ $I0 = isa index_, 'WmlsInteger'
++ if $I0 goto L2
++ $I0 = isa index_, 'WmlsFloat'
++ if $I0 goto L2
++ goto L1
++ L2:
++ $I0 = isa separator, 'WmlsInvalid'
++ if $I0 goto L1
++ $S1 = str
++ $I2 = index_
++ if $I2 >= 0 goto L3
++ $I2 = 0
++ L3:
++ $S3 = separator
++ $I3 = length $S3
++ if $I3 == 0 goto L1
++ $S3 = substr $S3, 0, 1
++ $I1 = length $S1
++ if $I1 != 0 goto L4
++ new res, 'WmlsString'
++ .return (res)
++ L4:
++ $P0 = split $S3, $S1
++ $I4 = elements $P0
++ if $I2 < $I4 goto L5
++ $I2 = $I4 - 1
++ L5:
++ dec $I4
++ new $P1, 'Array'
++ set $P1, $I4
++ $I0 = 0
++ $I1 = 0
++ L6:
++ unless $I1 < $I4 goto L7
++ $S0 = $P0[$I0]
++ $P1[$I1] = $S0
++ if $I0 == $I2 goto L8
++ inc $I1
++ L8:
++ inc $I0
++ goto L6
++ L7:
++ $S0 = join $S3, $P1
++ box res, $S0
++ .return (res)
++ L1:
++ new res, 'WmlsInvalid'
++ .return (res)
++.end
++
++
++=head2 C<replaceAt(string, element, index, separator)>
++
++=head3 DESCRIPTION
++
++Returns a string with the current element at the specified index replaced with
++the given element. If the index is less than 0 then the first element is
++replaced. If the index is larger than the number of elements then the last
++element is replaced. If the string is empty, the function returns a new string
++with the given element.
++
++If the index is of type floating-point, Float.int() is first used to calculate the
++actual index value.
++
++=head3 PARAMETERS
++
++string = String
++
++element = String
++
++index = Number (the index of the element to be replaced)
++
++separator = String (the first character of the string used as separator)
++
++=head3 RETURN VALUE
++
++String or invalid.
++
++=head3 EXCEPTIONS
++
++Returns C<invalid> if the separator is an empty string.
++
++=cut
++
++.sub '_string_replaceAt' :anon
++ .param pmc str
++ .param pmc element
++ .param pmc index_
++ .param pmc separator
++ .local pmc res
++ $I0 = isa str, 'WmlsInvalid'
++ if $I0 goto L1
++ $I0 = isa element, 'WmlsInvalid'
++ if $I0 goto L1
++ $I0 = isa index_, 'WmlsInteger'
++ if $I0 goto L2
++ $I0 = isa index_, 'WmlsFloat'
++ if $I0 goto L2
++ goto L1
++ L2:
++ $I0 = isa separator, 'WmlsInvalid'
++ if $I0 goto L1
++ $S1 = str
++ $S2 = element
++ $I3 = index_
++ if $I3 >= 0 goto L3
++ $I3 = 0
++ L3:
++ $S4 = separator
++ $I4 = length $S4
++ if $I4 == 0 goto L1
++ $S4 = substr $S4, 0, 1
++ $I1 = length $S1
++ if $I1 != 0 goto L4
++ box res, $S2
++ .return (res)
++ L4:
++ $P0 = split $S4, $S1
++ $I0 = elements $P0
++ if $I3 < $I0 goto L5
++ $I3 = $I0 - 1
++ L5:
++ $P0[$I3] = $S2
++ $S0 = join $S4, $P0
++ box res, $S0
++ .return (res)
++ L1:
++ new res, 'WmlsInvalid'
++ .return (res)
++.end
++
++
++=head2 C<insertAt(string, element, index, separator)>
++
++=head3 DESCRIPTION
++
++Returns a string with the element and the corresponding separator (if
++needed) inserted at the specified element index of the original string. If the
++index is less than 0 then 0 is used as the index. If the index is larger than the
++number of elements then the element is appended at the end of the string. If
++the string is empty, the function returns a new string with the given element.
++
++If the index is of type floating-point, Float.int() is first used to calculate the
++actual index value.
++
++=head3 PARAMETERS
++
++string = String (original string)
++
++element = String (element to be inserted)
++
++index = Number (the index of the element to be added)
++
++separator = String (the first character of the string used as separator)
++
++=head3 RETURN VALUE
++
++String or invalid.
++
++=head3 EXCEPTIONS
++
++Returns C<invalid> if the separator is an empty string.
++
++=cut
++
++.sub '_string_insertAt' :anon
++ .param pmc str
++ .param pmc element
++ .param pmc index_
++ .param pmc separator
++ .local pmc res
++ $I0 = isa str, 'WmlsInvalid'
++ if $I0 goto L1
++ $I0 = isa element, 'WmlsInvalid'
++ if $I0 goto L1
++ $I0 = isa index_, 'WmlsInteger'
++ if $I0 goto L2
++ $I0 = isa index_, 'WmlsFloat'
++ if $I0 goto L2
++ goto L1
++ L2:
++ $I0 = isa separator, 'WmlsInvalid'
++ if $I0 goto L1
++ $S1 = str
++ $S2 = element
++ $I3 = index_
++ if $I3 >= 0 goto L3
++ $I3 = 0
++ L3:
++ $S4 = separator
++ $I4 = length $S4
++ if $I4 == 0 goto L1
++ $S4 = substr $S4, 0, 1
++ $I1 = length $S1
++ if $I1 != 0 goto L4
++ box res, $S2
++ .return (res)
++ L4:
++ $P0 = split $S4, $S1
++ $I5 = elements $P0
++ if $I3 <= $I5 goto L5
++ $I3 = $I5
++ L5:
++ $I6 = $I5 + 1
++ new $P1, 'Array'
++ set $P1, $I6
++ $I0 = 0
++ $I1 = 0
++ L6:
++ unless $I0 < $I5 goto L7
++ if $I1 != $I3 goto L8
++ inc $I1
++ L8:
++ $S0 = $P0[$I0]
++ $P1[$I1] = $S0
++ inc $I0
++ inc $I1
++ goto L6
++ L7:
++ $P1[$I3] = $S2
++ $S0 = join $S4, $P1
++ box res, $S0
++ .return (res)
++ L1:
++ new res, 'WmlsInvalid'
++ .return (res)
++.end
++
++
++=head2 C<squeeze(string)>
++
++=head3 DESCRIPTION
++
++Returns a string where all consecutive series of white spaces within the
++string are reduced to single inter-word space.
++
++=head3 PARAMETERS
++
++String = String
++
++=head3 RETURN VALUE
++
++String or invalid.
++
++=cut
++
++.include 'cclass.pasm'
++
++.sub 'squeeze' :anon
++ .param string s
++ .local string res
++ .local int idx
++ res = ''
++ idx = 0
++ $I1 = length s
++ L1:
++ unless idx < $I1 goto L2
++ $I0 = is_cclass .CCLASS_WHITESPACE, s, idx
++ if $I0 goto L3
++ $S0 = substr s, idx, 1
++ res = concat $S0
++ inc idx
++ goto L1
++ L3:
++ res = concat ' '
++ L4:
++ inc idx
++ $I0 = is_cclass .CCLASS_WHITESPACE, s, idx
++ if $I0 goto L4
++ goto L1
++ L2:
++ .return (res)
++.end
++
++.sub '_string_squeeze' :anon
++ .param pmc str
++ .local pmc res
++ $I0 = isa str, 'WmlsInvalid'
++ if $I0 goto L1
++ $S1 = str
++ $S0 = squeeze($S1)
++ box res, $S0
++ .return (res)
++ L1:
++ new res, 'WmlsInvalid'
++ .return (res)
++.end
++
++
++=head2 C<trim(string)>
++
++=head3 DESCRIPTION
++
++Returns a string where all trailing and leading white spaces in the given
++string have been trimmed.
++
++=head3 PARAMETERS
++
++String = String
++
++=head3 RETURN VALUE
++
++String or invalid.
++
++=cut
++
++.sub 'trim' :anon
++ .param string s
++ .local string res
++ $I1 = 0
++ L1:
++ $I0 = is_cclass .CCLASS_WHITESPACE, s, $I1
++ unless $I0 goto L2
++ inc $I1
++ goto L1
++ L2:
++ $I2 = length s
++ L3:
++ dec $I2
++ $I0 = is_cclass .CCLASS_WHITESPACE, s, $I2
++ if $I0 goto L3
++ inc $I2
++ $I2 -= $I1
++ res = substr s, $I1, $I2
++ .return (res)
++.end
++
++.sub '_string_trim' :anon
++ .param pmc str
++ .local pmc res
++ $I0 = isa str, 'WmlsInvalid'
++ if $I0 goto L1
++ $S1 = str
++ $S0 = trim($S1)
++ box res, $S0
++ .return (res)
++ L1:
++ new res, 'WmlsInvalid'
++ .return (res)
++.end
++
++
++=head2 C<compare(string1, string2)>
++
++=head3 DESCRIPTION
++
++The return value indicates the lexicographic relation of string1 to string2. The
++relation is based on the relation of the character codes in the native
++character set. The return value is -1 if string1 is less than string2, 0 if string1
++is identical to string2 or 1 if string1 is greater than string2.
++
++=head3 PARAMETERS
++
++String1 = String
++
++String2 = String
++
++=head3 RETURN VALUE
++
++Integer or invalid.
++
++=cut
++
++.sub '_string_compare' :anon
++ .param pmc string1
++ .param pmc string2
++ .local pmc res
++ $I0 = isa string1, 'WmlsInvalid'
++ if $I0 goto L1
++ $I0 = isa string2, 'WmlsInvalid'
++ if $I0 goto L1
++ $S1 = string1
++ $S2 = string2
++ if $S1 >= $S2 goto L2
++ box res, -1
++ .return (res)
++ L2:
++ if $S1 > $S2 goto L3
++ box res, 0
++ .return (res)
++ L3:
++ box res, 1
++ .return (res)
++ L1:
++ new res, 'WmlsInvalid'
++ .return (res)
++.end
++
++
++=head2 C<toString(value)>
++
++=head3 DESCRIPTION
++
++Returns a string representation of the given value. This function performs
++exactly the same conversions as supported by the [WMLScript] language
++(automatic conversion from boolean, integer and floating-point values to
++strings) except that C<invalid> value returns the string C<"invalid">.
++
++=head3 PARAMETERS
++
++value = Any
++
++=head3 RETURN VALUE
++
++String.
++
++=cut
++
++.sub '_string_toString' :anon
++ .param pmc value
++ $S1 = value
++ .local pmc res
++ box res, $S1
++ .return (res)
++.end
++
++
++=head2 C<format(format, value)>
++
++=head3 DESCRIPTION
++
++Converts the given value to a string by using the given formatting provided as
++a format string. The format string can contain only one format specifier,
++which can be located anywhere inside the string. If more than one is
++specified, only the first one (leftmost) is used and the remaining specifiers
++are replaced by an empty string. The format specifier has the following form:
++
++ % [width] [.precision] type
++
++The C<width> argument is a nonnegative decimal integer controlling the
++minimum number of characters printed. If the number of characters in the
++output value is less than the specified width, blanks are added to the left until
++the minimum width is reached. The C<width> argument never causes the
++value to be truncated. If the number of characters in the output value is
++greater than the specified width or, if width is not given, all characters of the
++value are printed (subject to the precision argument).
++
++The C<precision> argument specifies a nonnegative decimal integer,
++preceded by a period (.), which can be used to set the precision of the output
++value. The interpretation of this value depends on the given C<type>:
++
++=over 4
++
++=item d
++
++Specifies the minimum number of digits to be printed. If the number
++of digits in the value is less than precision, the output value is
++padded on the left with zeroes. The value is not truncated when the
++number of digits exceeds precision. Default precision is 1. If
++precision is specified as 0 and the value to be converted is 0, the
++result is an empty string.
++
++=item f
++
++Specifies the number of digits after the decimal point. If a decimal
++point appears, at least one digit appears before it. The value is
++rounded to the appropriate number of digits. Default precision is 6; if
++precision is 0 or if the period (.) appears without a number following
++it, no decimal point is printed.
++
++=item s
++
++Specifies the maximum number of characters to be printed. By
++default, all characters are printed.
++
++=back
++
++Unlike the C<width> argument, the C<precision> argument can cause either
++truncation of the output value or rounding of a floating-point value.
++
++The C<type> argument is the only required format argument; it appears after
++any optional format fields. The type character determines whether the given
++value is interpreted as integer, floating-point or string. If the value argument
++is of a different type than is specified by the type argument, it is converted
++according to WMLScript standard automatic conversion rules, with the
++addition that if value is of type floating-point and type is B<d>, Float.int() is called
++to convert the value. The supported C<type> arguments are:
++
++=over 4
++
++=item d
++
++Integer: The output value has the form [-]dddd, where dddd is one
++or more decimal digits.
++
++=item f
++
++Floating-point: The output value has the form [-]dddd.dddd, where
++dddd is one or more decimal digits. The number of digits before the
++decimal point depends on the magnitude of the number and the
++number of digits after the decimal point depends on the requested
++precision. When the number of digits after the decimal point in the value
++is less than the precision, letter 0 should be padded to fill columns
++(e.g. the result of String.format("%2.3f", 1.2) will be
++"1.200")
++
++=item s
++
++String: Characters are printed up to the end of the string or until the
++precision value is reached. When the width is larger than
++precision, the width should be ignored.
++
++=back
++
++A literal percent character (%) may be included in the format string by
++preceding it with another percent character (%%).
++
++MINIMALIST IMPLEMENTATION
++
++=head3 PARAMETERS
++
++format = String
++
++value = Any
++
++=head3 RETURN VALUE
++
++String or invalid.
++
++=head3 EXCEPTIONS
++
++Illegal format specifier results in an C<invalid> return value.
++
++=cut
++
++.sub '_string_format' :anon
++ .param pmc format
++ .param pmc value
++ .local pmc res
++ $I0 = isa format, 'WmlsInvalid'
++ if $I0 goto L1
++ $S0 = format
++ new $P0, 'Array'
++ set $P0, 1
++ $P0[0] = value
++ L2:
++ $S1 = sprintf $S0, $P0
++ box res, $S1
++ .return (res)
++ L1:
++ new res, 'WmlsInvalid'
++ .return (res)
++.end
++
++
++# Local Variables:
++# mode: pir
++# fill-column: 100
++# End:
++# vim: expandtab shiftwidth=4 ft=pir:
+--- origsrc/parrot-0.8.2/languages/WMLScript/config/makefiles/root.in 2008-06-23 02:30:48.000000000 +0000
++++ src/parrot-0.8.2/languages/WMLScript/config/makefiles/root.in 2008-12-25 13:44:20.631500000 +0000
+@@ -1,21 +1,40 @@
+ # Copyright (C) 2006-2007, The Perl Foundation.
+ # $Id: /mirror/trunk/languages/WMLScript/config/makefiles/root.in 28688 2008-06-23T00:33:41.905243Z coke $
+
+-RM_F = @rm_f@
+-PERL = @perl@
+-PARROT = ../../parrot@exe@
++## configuration settings
++HLLNAME = WMLScript
+
+-PMCBUILD = $(PERL) @build_dir@/tools/build/dynpmc.pl
+-OPSBUILD = $(PERL) @build_dir@/tools/build/dynoplibs.pl
+-LIBPATH = runtime
+-PMCDIR = pmc
+-OPSDIR = ops
+-O = @o@
+-LOAD_EXT = @load_ext@
+-PARROT_DYNEXT = @build_dir@/runtime/parrot/dynext
+-#CONDITIONED_LINE(darwin):
+-#CONDITIONED_LINE(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
+-#CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++## Setup some commands
++PERL = @perl@
++RM_F = @rm_f@
++CP = @cp@
++MKPATH = @mkpath@
++POD2MAN = pod2man
++PMCBUILD = $(PERL) @build_dir@/tools/build/dynpmc.pl
++OPSBUILD = $(PERL) @build_dir@/tools/build/dynoplibs.pl
++O = @o@
++LOAD_EXT = @load_ext@
++
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
++PARROT = ../../parrot@exe@
++PBC_TO_EXE = ../../pbc_to_exe@exe@
++RECONFIGURE = $(PERL) $(BUILD_DIR)/tools/dev/reconfigure.pl
++
++## places to look for things
++BUILD_DIR = @build_dir@
++BIN_DIR = @bin_dir@
++LIB_DIR = @lib_dir@
++DOC_DIR = @doc_dir@
++MANDIR = @mandir@
++
++LIBPATH = WMLScript
++PMCDIR = pmc
++OPSDIR = ops
++PARROT_DYNEXT = $(BUILD_DIR)/runtime/parrot/dynext
++PARROT_LIB = $(BUILD_DIR)/runtime/parrot/library
++#IF(darwin):
++#IF(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
++#IF(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
+
+ SRM=Stack
+
+@@ -36,9 +55,10 @@
+ $(PMCDIR)/wmlsbytecode.pmc
+
+ OPS_FILES = $(OPSDIR)/wmls.ops
+-
+ OPSLIB = wmls
+
++CMDS = wmls2pir wmls2pbc wmlsd wmlsi
++
+ PBCS = \
+ $(LIBPATH)/wmlslang.pbc \
+ $(LIBPATH)/wmlsfloat.pbc \
+@@ -49,12 +69,23 @@
+ src/opcode.pir \
+ src/stdlibs.pir
+
+-all: \
++DOCS = \
++ MAINTAINER doc/running.pod doc/status.pod
++
++build: \
+ pmc/wmls_group$(LOAD_EXT) \
+ ops/wmls_ops$(LOAD_EXT) \
+- src/WMLScript.pbc \
++ WMLScript.pbc \
+ $(PBCS)
+
++all: \
++ pmc/wmls_group$(LOAD_EXT) \
++ ops/wmls_ops$(LOAD_EXT) \
++ WMLScript.pbc \
++ Makefile \
++ $(PBCS) \
++ wmls2pir@exe@ wmls2pbc@exe@ wmlsd@exe@ wmlsi@exe@ installable
++
+ pmc/wmls_group$(LOAD_EXT) : $(PMC_FILES)
+ @cd $(PMCDIR) && $(PMCBUILD) generate $(PMCS)
+ @cd $(PMCDIR) && $(PMCBUILD) compile $(PMCS)
+@@ -67,9 +98,9 @@
+ @cd $(OPSDIR) && $(OPSBUILD) linklibs $(OPSLIB)
+ @cd $(OPSDIR) && $(OPSBUILD) copy "--destination=$(PARROT_DYNEXT)" $(OPSLIB)
+
+-src/WMLScript.pbc: src/WMLScript.pir \
++WMLScript.pbc: src/WMLScript.pir \
+ src/script.pir src/wmlsstdlibs.pir $(GEN_PIR)
+- $(PARROT) -o src/WMLScript.pbc src/WMLScript.pir
++ $(PARROT) -o WMLScript.pbc src/WMLScript.pir
+
+ src/opcode.pir: src/translation.rules build/translator.pl \
+ build/SRM/Stack.pm build/SRM/Register.pm
+@@ -91,6 +122,67 @@
+ $(LIBPATH)/wmlsconsole.pbc: $(LIBPATH)/wmlsconsole.pir
+ $(PARROT) --output=$(LIBPATH)/wmlsconsole.pbc $(LIBPATH)/wmlsconsole.pir
+
++# regenerate the Makefile
++Makefile: config/makefiles/root.in
++ cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=$(HLLNAME)
++
++wmls2pir.pbc: wmls2pir.pir
++ $(PARROT) --output=$@ wmls2pir.pir
++
++wmls2pbc.pbc: wmls2pbc.pir
++ $(PARROT) --output=$@ wmls2pbc.pir
++
++wmlsd.pbc: wmlsd.pir
++ $(PARROT) --output=$@ wmlsd.pir
++
++wmlsi.pbc: wmlsi.pir
++ $(PARROT) --output=$@ wmlsi.pir
++
++wmls2pir@exe@: wmls2pir.pbc
++ $(PBC_TO_EXE) wmls2pir.pbc
++
++wmls2pbc@exe@: wmls2pbc.pbc
++ $(PBC_TO_EXE) wmls2pbc.pbc
++
++wmlsd@exe@: wmlsd.pbc
++ $(PBC_TO_EXE) wmlsd.pbc
++
++wmlsi@exe@: wmlsi.pbc
++ $(PBC_TO_EXE) wmlsi.pbc
++
++installable_wmls2pir@exe@: wmls2pir.pbc
++ $(PBC_TO_EXE) wmls2pir.pbc --install
++
++installable_wmls2pbc@exe@: wmls2pbc.pbc
++ $(PBC_TO_EXE) wmls2pbc.pbc --install
++
++installable_wmlsd@exe@: wmlsd.pbc
++ $(PBC_TO_EXE) wmlsd.pbc --install
++
++installable_wmlsi@exe@: wmlsi.pbc
++ $(PBC_TO_EXE) wmlsi.pbc --install
++
++install : installable
++ $(CP) installable_wmls2pir@exe@ $(DESTDIR)$(BIN_DIR)/parrot-wmls2pir@exe@
++ $(CP) installable_wmls2pbc@exe@ $(DESTDIR)$(BIN_DIR)/parrot-wmls2pbc@exe@
++ $(CP) installable_wmlsd@exe@ $(DESTDIR)$(BIN_DIR)/parrot-wmlsd@exe@
++ $(CP) installable_wmlsi@exe@ $(DESTDIR)$(BIN_DIR)/parrot-wmlsi@exe@
++ $(CP) $(HLLNAME).pbc $(DESTDIR)$(LIB_DIR)/parrot/library/$(HLLNAME).pbc
++ $(MKPATH) $(DESTDIR)$(LIB_DIR)/parrot/library/$(HLLNAME)
++ $(CP) $(PBCS) $(DESTDIR)$(LIB_DIR)/parrot/library/$(HLLNAME)
++ @cd $(PMCDIR) && $(PMCBUILD) copy "--destination=$(DESTDIR)$(LIB_DIR)/parrot/dynext" $(PMCS)
++ @cd $(OPSDIR) && $(OPSBUILD) copy "--destination=$(DESTDIR)$(LIB_DIR)/parrot/dynext" $(OPSLIB)
++ $(POD2MAN) doc/running.pod > $(DESTDIR)$(MANDIR)/man1/parrot-wmls.5
++ $(MKPATH) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++ $(CP) $(DOCS) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++
++installable: installable_wmls2pir@exe@ installable_wmls2pbc@exe@ \
++ installable_wmlsd@exe@ installable_wmlsi@exe@ \
++ $(HLLNAME).pbc $(PBCS)
++ $(CP) $(HLLNAME).pbc $(PARROT_LIB)/$(HLLNAME).pbc
++ -$(MKPATH) $(PARROT_LIB)/$(HLLNAME)
++ $(CP) $(PBCS) $(PARROT_LIB)/$(HLLNAME)
++
+ help:
+ @echo ""
+ @echo "Following targets are available for the user:"
+@@ -136,7 +228,11 @@
+ "$(OPSDIR)/*.h" \
+ "$(OPSDIR)/*$(LOAD_EXT)" \
+ "$(OPSDIR)/*$(O)" \
+- "$(LIBPATH)/*.pbc"
++ "$(LIBPATH)/*.pbc" \
++ $(PARROT_LIB)/$(HLLNAME).pbc \
++ $(HLLNAME).pbc installable_*@exe@ \
++ wmls2pir@exe@ wmls2pbc@exe@ wmlsd@exe@ wmlsi@exe@ \
++ $(PARROT_LIB)/$(HLLNAME)/*.pbc
+
+ clean:
+ $(RM_F) $(BUILD_CLEANERS) $(TEST_CLEANERS)
+@@ -146,3 +242,8 @@
+
+ distclean: realclean
+
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/languages/WMLScript/runtime/wmlsconsole.pir 2008-12-17 06:55:15.000000000 +0000
++++ src/parrot-0.8.2/languages/WMLScript/runtime/wmlsconsole.pir 1970-01-01 00:00:00.000000000 +0000
+@@ -1,101 +0,0 @@
+-# Copyright (C) 2006-2008, The Perl Foundation.
+-# $Id: /mirror/trunk/languages/WMLScript/runtime/wmlsconsole.pir 33752 2008-12-09T18:54:29.527603Z fperrad $
+-
+-=head1 NAME
+-
+-runtime/wmlsconsole.pir - WMLScript Console library
+-
+-=head1 DESCRIPTION
+-
+-See "WMLScript Reference UP.SDK R4.B3 - October 1999".
+-
+-=head1 FUNCTIONS
+-
+-=cut
+-
+-.HLL 'WMLScript'
+-.loadlib 'wmls_group'
+-.loadlib 'wmls_ops'
+-
+-
+-.sub 'getConsole'
+- new $P0, 'Hash'
+-
+- .const 'Sub' _console_print = '_console_print'
+- $P0[0] = _console_print
+- .const 'Sub' _console_println = '_console_println'
+- $P0[1] = _console_println
+-
+- .return ($P0)
+-.end
+-
+-
+-=head2 C<print(string)>
+-
+-=head3 DESCRIPTION
+-
+-
+-=head3 PARAMETERS
+-
+-string = String
+-
+-=head3 RETURN VALUE
+-
+-Number or invalid.
+-
+-=cut
+-
+-.sub '_console_print' :anon
+- .param pmc str
+- .local pmc res
+- $I0 = isa str, 'WmlsInvalid'
+- if $I0 goto L1
+- $S0 = str
+- print $S0
+- $I0 = length $S0
+- box res, $I0
+- goto L2
+- L1:
+- new res, 'WmlsInvalid'
+- L2:
+- .return (res)
+-.end
+-
+-
+-=head2 C<println(string)>
+-
+-=head3 DESCRIPTION
+-
+-
+-=head3 PARAMETERS
+-
+-string = String
+-
+-=head3 RETURN VALUE
+-
+-Number or invalid.
+-
+-=cut
+-
+-.sub '_console_println' :anon
+- .param pmc str
+- .local pmc res
+- $I0 = isa str, 'WmlsInvalid'
+- if $I0 goto L1
+- $S0 = str
+- say $S0
+- $I0 = length $S0
+- box res, $I0
+- goto L2
+- L1:
+- new res, 'WmlsInvalid'
+- L2:
+- .return (res)
+-.end
+-
+-
+-# Local Variables:
+-# mode: pir
+-# fill-column: 100
+-# End:
+-# vim: expandtab shiftwidth=4 ft=pir:
+--- origsrc/parrot-0.8.2/languages/WMLScript/runtime/wmlsfloat.pir 2008-12-17 06:55:15.000000000 +0000
++++ src/parrot-0.8.2/languages/WMLScript/runtime/wmlsfloat.pir 1970-01-01 00:00:00.000000000 +0000
+@@ -1,355 +0,0 @@
+-# Copyright (C) 2006-2008, The Perl Foundation.
+-# $Id: /mirror/trunk/languages/WMLScript/runtime/wmlsfloat.pir 33686 2008-12-08T15:50:21.922911Z fperrad $
+-
+-=head1 NAME
+-
+-runtime/wmlsfloat.pir - WMLScript Float library
+-
+-=head1 DESCRIPTION
+-
+-This library contains a set of typical arithmetic floating-point functions that
+-are frequently used by applications.
+-
+-See "WMLScript Standard Libraries Specification", section 8 "Float".
+-
+-=head1 FUNCTIONS
+-
+-=cut
+-
+-.HLL 'WMLScript'
+-.loadlib 'wmls_group'
+-.loadlib 'wmls_ops'
+-
+-
+-.sub 'getFloat'
+- new $P0, 'Hash'
+-
+- .const 'Sub' _float_int = '_float_int'
+- $P0[0] = _float_int
+- .const 'Sub' _float_floor = '_float_floor'
+- $P0[1] = _float_floor
+- .const 'Sub' _float_ceil = '_float_ceil'
+- $P0[2] = _float_ceil
+- .const 'Sub' _float_pow = '_float_pow'
+- $P0[3] = _float_pow
+- .const 'Sub' _float_round = '_float_round'
+- $P0[4] = _float_round
+- .const 'Sub' _float_sqrt = '_float_sqrt'
+- $P0[5] = _float_sqrt
+- .const 'Sub' _float_maxFloat = '_float_maxFloat'
+- $P0[6] = _float_maxFloat
+- .const 'Sub' _float_minFloat = '_float_minFloat'
+- $P0[7] = _float_minFloat
+-
+- .return ($P0)
+-.end
+-
+-
+-=head2 C<int(value)>
+-
+-=head3 DESCRIPTION
+-
+-Returns the integer part of the given value. If the value is already an integer,
+-the result is the value itself.
+-
+-=head3 PARAMETERS
+-
+-value = Number
+-
+-=head3 RETURN VALUE
+-
+-Integer or invalid.
+-
+-=cut
+-
+-.sub '_float_int' :anon
+- .param pmc value
+- .local pmc res
+- $P0 = value
+- $I0 = isa value, 'WmlsString'
+- unless $I0 goto L1
+- $P0 = value.'parseNumber'()
+- L1:
+- $I0 = isa $P0, 'WmlsInvalid'
+- if $I0 goto L2
+- $I0 = $P0
+- box res, $I0
+- goto L3
+- L2:
+- new res, 'WmlsInvalid'
+- L3:
+- .return (res)
+-.end
+-
+-
+-=head2 C<floor(value)>
+-
+-=head3 DESCRIPTION
+-
+-Returns the greatest integer value that is not greater than the given value. If
+-the value is already an integer, the result is the value itself.
+-
+-=head3 PARAMETERS
+-
+-value = Number
+-
+-=head3 RETURN VALUE
+-
+-Integer or invalid.
+-
+-=cut
+-
+-.sub '_float_floor' :anon
+- .param pmc value
+- .local pmc res
+- $P0 = value
+- $I0 = isa value, 'WmlsString'
+- unless $I0 goto L1
+- $P0 = value.'parseNumber'()
+- L1:
+- $I0 = isa $P0, 'WmlsInvalid'
+- if $I0 goto L2
+- $N0 = $P0
+- $I0 = floor $N0
+- box res, $I0
+- goto L3
+- L2:
+- new res, 'WmlsInvalid'
+- L3:
+- .return (res)
+-.end
+-
+-
+-=head2 C<ceil(value)>
+-
+-=head3 DESCRIPTION
+-
+-Returns the smallest integer value that is not less than the given value. If
+-the value is already an integer, the result is the value itself.
+-
+-=head3 PARAMETERS
+-
+-value = Number
+-
+-=head3 RETURN VALUE
+-
+-Integer or invalid.
+-
+-=cut
+-
+-.sub '_float_ceil' :anon
+- .param pmc value
+- .local pmc res
+- $P0 = value
+- $I0 = isa value, 'WmlsString'
+- unless $I0 goto L1
+- $P0 = value.'parseNumber'()
+- L1:
+- $I0 = isa $P0, 'WmlsInvalid'
+- if $I0 goto L2
+- $N0 = $P0
+- $I0 = ceil $N0
+- box res, $I0
+- goto L3
+- L2:
+- new res, 'WmlsInvalid'
+- L3:
+- .return (res)
+-.end
+-
+-
+-=head2 C<pow(value1, value2)>
+-
+-=head3 DESCRIPTION
+-
+-Returns an implementation-dependent approximation to the result of raising
+-value1 to the power of value2. If value1 is a negative number then value2
+-must be an integer.
+-
+-=head3 PARAMETERS
+-
+-value1 = Number
+-
+-value2 = Number
+-
+-=head3 RETURN VALUE
+-
+-Floating-point or invalid.
+-
+-=head3 EXCEPTIONS
+-
+-If value1 == 0 and value2 < 0 then C<invalid> is returned.
+-
+-If value1 < 0 and value2 is not an integer then C<invalid> is returned.
+-
+-=cut
+-
+-.sub '_float_pow' :anon
+- .param pmc value1
+- .param pmc value2
+- .local pmc res
+- $P1 = value1
+- $I0 = isa value1, 'WmlsString'
+- unless $I0 goto L1
+- $P1 = value1.'parseNumber'()
+- L1:
+- $I0 = isa $P1, 'WmlsInvalid'
+- if $I0 goto L2
+- $N1 = $P1
+- $P2 = value2
+- $I0 = isa value2, 'WmlsString'
+- unless $I0 goto L3
+- $P2 = value2.'parseNumber'()
+- L3:
+- $I0 = isa $P2, 'WmlsInvalid'
+- if $I0 goto L2
+- $N2 = $P2
+- unless $N1 == 0.0 goto L4
+- if $N2 < 0.0 goto L2
+- box res, 0.0
+- goto L5
+- L4:
+- unless $N1 < 0.0 goto L6
+- $I0 = isa $P2, 'WmlsFloat'
+- if $I0 goto L2
+- L6:
+- $N0 = pow $N1, $N2
+- box res, $N0
+- goto L5
+- L2:
+- new res, 'WmlsInvalid'
+- L5:
+- .return (res)
+-.end
+-
+-
+-=head2 C<round(value)>
+-
+-=head3 DESCRIPTION
+-
+-Returns the number value that is closest to the given value and is equal to a
+-mathematical integer. If two integer number values are equally close to the
+-value, the result is the larger number value. If the value is already an
+-integer, the result is the value itself.
+-
+-=head3 PARAMETERS
+-
+-value = Number
+-
+-=head3 RETURN VALUE
+-
+-Integer or invalid.
+-
+-=cut
+-
+-.sub '_float_round' :anon
+- .param pmc value
+- .local pmc res
+- $P0 = value
+- $I0 = isa value, 'WmlsString'
+- unless $I0 goto L1
+- $P0 = value.'parseNumber'()
+- L1:
+- $I0 = isa $P0, 'WmlsInvalid'
+- if $I0 goto L2
+- $N0 = $P0
+- $N0 += 0.5
+- $I0 = floor $N0
+- box res, $I0
+- goto L3
+- L2:
+- new res, 'WmlsInvalid'
+- L3:
+- .return (res)
+-.end
+-
+-
+-=head2 C<sqrt(value)>
+-
+-=head3 DESCRIPTION
+-
+-Returns an implementation-dependent approximation to the square root of
+-the given value.
+-
+-=head3 PARAMETERS
+-
+-value = Floating-point
+-
+-=head3 RETURN VALUE
+-
+-Floating-point or invalid.
+-
+-=head3 EXCEPTIONS
+-
+-If value is a negative number then invalid is returned.
+-
+-=cut
+-
+-.sub '_float_sqrt' :anon
+- .param pmc value
+- .local pmc res
+- $P0 = value
+- $I0 = isa value, 'WmlsString'
+- unless $I0 goto L1
+- $P0 = value.'parseNumber'()
+- L1:
+- $I0 = isa $P0, 'WmlsInvalid'
+- if $I0 goto L2
+- $N0 = $P0
+- if $N0 < 0.0 goto L2
+- $N1 = sqrt $N0
+- box res, $N1
+- goto L3
+- L2:
+- new res, 'WmlsInvalid'
+- L3:
+- .return (res)
+-.end
+-
+-
+-=head2 C<maxFloat()>
+-
+-=head3 DESCRIPTION
+-
+-Returns the maximum floating-point value supported by [IEEE754] single
+-precision floating-point format.
+-
+-=head3 RETURN VALUE
+-
+-Floating-point 3.40282347e+38.
+-
+-=cut
+-
+-.sub '_float_maxFloat' :anon
+- .local pmc res
+- box res, 3.40282347e+38
+- .return (res)
+-.end
+-
+-
+-=head2 C<minFloat()>
+-
+-=head3 DESCRIPTION
+-
+-Returns the smallest nonzero floating-point value supported by [IEEE754]
+-single precision floating-point format.
+-
+-=head3 RETURN VALUE
+-
+-Floating-point. Smaller than or equal to the normalised minimum single
+-precision floating-point value: 1.17549435e-38.
+-
+-=cut
+-
+-.sub '_float_minFloat' :anon
+- .local pmc res
+- box res, 1.17549435e-38
+- .return (res)
+-.end
+-
+-
+-# Local Variables:
+-# mode: pir
+-# fill-column: 100
+-# End:
+-# vim: expandtab shiftwidth=4 ft=pir:
+--- origsrc/parrot-0.8.2/languages/WMLScript/runtime/wmlslang.pir 2008-12-17 06:55:15.000000000 +0000
++++ src/parrot-0.8.2/languages/WMLScript/runtime/wmlslang.pir 1970-01-01 00:00:00.000000000 +0000
+@@ -1,663 +0,0 @@
+-# Copyright (C) 2006-2008, The Perl Foundation.
+-# $Id: /mirror/trunk/languages/WMLScript/runtime/wmlslang.pir 33686 2008-12-08T15:50:21.922911Z fperrad $
+-
+-=head1 NAME
+-
+-runtime/wmlslang.pir - WMLScript Lang library
+-
+-=head1 DESCRIPTION
+-
+-This library contains a set of functions that are closely related to the
+-WMLScript language core.
+-
+-See "WMLScript Standard Libraries Specification", section 7 "Lang".
+-
+-=head1 FUNCTIONS
+-
+-=cut
+-
+-.HLL 'WMLScript'
+-.loadlib 'wmls_group'
+-.loadlib 'wmls_ops'
+-
+-
+-.sub 'getLang'
+- new $P0, 'Hash'
+-
+- .const 'Sub' _lang_abs = '_lang_abs'
+- $P0[0] = _lang_abs
+- .const 'Sub' _lang_min = '_lang_min'
+- $P0[1] = _lang_min
+- .const 'Sub' _lang_max = '_lang_max'
+- $P0[2] = _lang_max
+- .const 'Sub' _lang_parseInt = '_lang_parseInt'
+- $P0[3] = _lang_parseInt
+- .const 'Sub' _lang_parseFloat = '_lang_parseFloat'
+- $P0[4] = _lang_parseFloat
+- .const 'Sub' _lang_isInt = '_lang_isInt'
+- $P0[5] = _lang_isInt
+- .const 'Sub' _lang_isFloat = '_lang_isFloat'
+- $P0[6] = _lang_isFloat
+- .const 'Sub' _lang_maxInt = '_lang_maxInt'
+- $P0[7] = _lang_maxInt
+- .const 'Sub' _lang_minInt = '_lang_minInt'
+- $P0[8] = _lang_minInt
+- .const 'Sub' _lang_float = '_lang_float'
+- $P0[9] = _lang_float
+- .const 'Sub' _lang_exit = '_lang_exit'
+- $P0[10] = _lang_exit
+- .const 'Sub' _lang_abort = '_lang_abort'
+- $P0[11] = _lang_abort
+- .const 'Sub' _lang_random = '_lang_random'
+- $P0[12] = _lang_random
+- .const 'Sub' _lang_seed = '_lang_seed'
+- $P0[13] = _lang_seed
+- .const 'Sub' _lang_characterSet = '_lang_characterSet'
+- $P0[14] = _lang_characterSet
+-
+- .return ($P0)
+-.end
+-
+-
+-=head2 C<abs(value)>
+-
+-=head3 DESCRIPTION
+-
+-Returns the absolute value of the given number. If the given number is of
+-type integer then an integer value is returned. If the given number is of type
+-floating-point then a floating-point value is returned.
+-
+-=head3 PARAMETERS
+-
+-value = Number
+-
+-=head3 RETURN VALUE
+-
+-Number or invalid.
+-
+-=cut
+-
+-.sub '_lang_abs' :anon
+- .param pmc value
+- .local pmc res
+- res = clone value
+- res = abs value
+- .return (res)
+-.end
+-
+-
+-=head2 C<min(value1, value2)>
+-
+-=head3 DESCRIPTION
+-
+-Returns the minimum value of the given two numbers. The value and type
+-returned is the same as the value and type of the selected number. The
+-selection is done in the following way:
+-
+-=over 4
+-
+-=item *
+-
+-WMLScript operator data type conversion rules for I<integers and
+-floating-points> (see [WMLScript]) must be used to specify the data
+-type (integer or floating-point ) for comparison.
+-
+-=item *
+-
+-Compare the numbers to select the smaller one.
+-
+-=item *
+-
+-If the values are equal then the first value is selected.
+-
+-=back
+-
+-=head3 PARAMETERS
+-
+-value1 = Number
+-
+-value2 = Number
+-
+-=head3 RETURN VALUE
+-
+-Number or invalid.
+-
+-=cut
+-
+-.sub '_lang_min' :anon
+- .param pmc value1
+- .param pmc value2
+- .local pmc res
+- $P1 = value1
+- $I0 = isa value1, 'WmlsString'
+- unless $I0 goto L1
+- $P1 = value1.'parseNumber'()
+- L1:
+- $P2 = value2
+- $I0 = isa value2, 'WmlsString'
+- unless $I0 goto L2
+- $P2 = value2.'parseNumber'()
+- L2:
+- $P0 = isle $P1, $P2
+- $I0 = isa $P0, 'WmlsInvalid'
+- unless $I0 goto L3
+- .return ($P0)
+- L3:
+- $I0 = $P0
+- unless $I0 goto L4
+- res = clone value1
+- goto L5
+- L4:
+- res = clone value2
+- L5:
+- .return (res)
+-.end
+-
+-
+-=head2 C<max(value1, value2)>
+-
+-=head3 DESCRIPTION
+-
+-Returns the maximum value of the given two numbers. The value and type
+-returned is the same as the value and type of the selected number. The
+-selection is done in the following way:
+-
+-=over 4
+-
+-=item *
+-
+-WMLScript operator data type conversion rules for I<integers and
+-floating-points> (see [WMLScript]) must be used to specify the data
+-type (integer or floating-point ) for comparison.
+-
+-=item *
+-
+-Compare the numbers to select the larger one.
+-
+-=item *
+-
+-If the values are equal then the first value is selected.
+-
+-=back
+-
+-=head3 PARAMETERS
+-
+-value1 = Number
+-
+-value2 = Number
+-
+-=head3 RETURN VALUE
+-
+-Number or invalid.
+-
+-=cut
+-
+-.sub '_lang_max' :anon
+- .param pmc value1
+- .param pmc value2
+- .local pmc res
+- $P1 = value1
+- $I0 = isa value1, 'WmlsString'
+- unless $I0 goto L1
+- $P1 = value1.'parseNumber'()
+- L1:
+- $P2 = value2
+- $I0 = isa value2, 'WmlsString'
+- unless $I0 goto L2
+- $P2 = value2.'parseNumber'()
+- L2:
+- $P0 = isge $P1, $P2
+- $I0 = isa $P0, 'WmlsInvalid'
+- unless $I0 goto L3
+- .return ($P0)
+- L3:
+- $I0 = $P0
+- unless $I0 goto L4
+- res = clone value1
+- goto L5
+- L4:
+- res = clone value2
+- L5:
+- .return (res)
+-.end
+-
+-
+-=head2 C<parseInt(value)>
+-
+-=head3 DESCRIPTION
+-
+-Returns an integer value defined by the string value. The legal integer
+-syntax is specified by the WMLScript (see [WMLScript]) numeric string
+-grammar for I<decimal integer literals> with the following additional parsing
+-rule:
+-
+-=over 4
+-
+-=item *
+-
+-Parsing ends when the first character is encountered that is not a
+-leading '+' or '-' or a decimal digit.
+-
+-=back
+-
+-The result is the parsed string converted to an integer value.
+-
+-=head3 PARAMETERS
+-
+-value = String
+-
+-=head3 RETURN VALUE
+-
+-Integer or invalid.
+-
+-=head3 EXCEPTIONS
+-
+-In case of a parsing error an C<invalid> value is returned.
+-
+-=cut
+-
+-.sub '_lang_parseInt' :anon
+- .param pmc value
+- .local pmc res
+- $I0 = isa value, 'WmlsString'
+- unless $I0 goto L1
+- res = value.'parseInt'()
+- .return (res)
+- L1:
+- res = value
+- $I0 = isa value, 'WmlsInteger'
+- if $I0 goto L2
+- new res, 'WmlsInvalid'
+- L2:
+- .return (res)
+-.end
+-
+-
+-=head2 C<parseFloat(value)>
+-
+-=head3 DESCRIPTION
+-
+-Returns a floating-point value defined by the string value. The legal floatingpoint
+-syntax is specified by the WMLScript (see [WMLScript]) numeric
+-string grammar for I<decimal floating-point literals> with the following additional
+-parsing rule:
+-
+-=over 4
+-
+-=item *
+-
+-Parsing ends when the first character is encountered that cannot
+-be parsed as being part of the floating-point representation.
+-
+-=back
+-
+-The result is the parsed string converted to a floating-point value.
+-
+-=head3 PARAMETERS
+-
+-value = String
+-
+-=head3 RETURN VALUE
+-
+-Floating-point or invalid.
+-
+-=head3 EXCEPTIONS
+-
+-In case of a parsing error an C<invalid> value is returned.
+-
+-=cut
+-
+-.sub '_lang_parseFloat' :anon
+- .param pmc value
+- .local pmc res
+- $I0 = isa value, 'WmlsString'
+- unless $I0 goto L1
+- res = value.'parseFloat'()
+- .return (res)
+- L1:
+- res = value
+- $I0 = isa value, 'WmlsFloat'
+- if $I0 goto L2
+- $I0 = isa value, 'WmlsInteger'
+- unless $I0 goto L3
+- $I0 = value
+- new res, 'WmlsFloat'
+- set res, $I0
+- goto L2
+- L3:
+- new res, 'WmlsInvalid'
+- L2:
+- .return (res)
+-.end
+-
+-
+-=head2 C<isInt(value)>
+-
+-=head3 DESCRIPTION
+-
+-Returns a boolean value that is C<true> if the given value can be converted
+-into an integer number by using parseInt(value). Otherwise C<false> is
+-returned.
+-
+-=head3 PARAMETERS
+-
+-value = Any
+-
+-=head3 RETURN VALUE
+-
+-Boolean or invalid.
+-
+-=cut
+-
+-.sub '_lang_isInt' :anon
+- .param pmc value
+- .local pmc res
+- $I0 = isa value, 'WmlsString'
+- unless $I0 goto L1
+- $P0 = value.'parseInt'()
+- res = defined $P0
+- .return (res)
+- L1:
+- $I0 = isa value, 'WmlsInvalid'
+- unless $I0 goto L2
+- new res, 'WmlsInvalid'
+- .return (res)
+- L2:
+- new res, 'WmlsBoolean'
+- $I0 = isa value, 'WmlsInteger'
+- set res, $I0
+- .return (res)
+-.end
+-
+-
+-=head2 C<isFloat(value)>
+-
+-=head3 DESCRIPTION
+-
+-Returns a boolean value that is C<true> if the given value can be converted
+-into a floating-point number using parseFloat(value). Otherwise C<false> is
+-returned.
+-
+-=head3 PARAMETERS
+-
+-value = Any
+-
+-=head3 RETURN VALUE
+-
+-Boolean or invalid.
+-
+-=cut
+-
+-.sub '_lang_isFloat' :anon
+- .param pmc value
+- .local pmc res
+- $I0 = isa value, 'WmlsString'
+- unless $I0 goto L1
+- $P0 = value.'parseFloat'()
+- res = defined $P0
+- .return (res)
+- L1:
+- $I0 = isa value, 'WmlsInvalid'
+- unless $I0 goto L2
+- new res, 'WmlsInvalid'
+- .return (res)
+- L2:
+- new res, 'WmlsBoolean'
+- $I0 = isa value, 'WmlsFloat'
+- set res, $I0
+- if $I0 goto L3
+- $I0 = isa value, 'WmlsInteger'
+- set res, $I0
+- L3:
+- .return (res)
+-.end
+-
+-
+-=head2 C<maxInt()>
+-
+-=head3 DESCRIPTION
+-
+-Returns the maximum integer value.
+-
+-=head3 RETURN VALUE
+-
+-Integer 2147483647.
+-
+-=cut
+-
+-.sub '_lang_maxInt' :anon
+- .local pmc res
+- box res, 2147483647
+- .return (res)
+-.end
+-
+-
+-=head2 C<minInt()>
+-
+-=head3 DESCRIPTION
+-
+-Returns the minimum integer value.
+-
+-=head3 RETURN VALUE
+-
+-Integer -2147483648.
+-
+-=cut
+-
+-.sub '_lang_minInt' :anon
+- .local pmc res
+- box res, -2147483648
+- .return (res)
+-.end
+-
+-
+-=head2 C<float()>
+-
+-=head3 DESCRIPTION
+-
+-Returns true if floating-points are supported and false if not.
+-
+-=head3 RETURN VALUE
+-
+-Boolean.
+-
+-=cut
+-
+-.sub '_lang_float' :anon
+- .local pmc res
+- new res, 'WmlsBoolean'
+- set res, 1
+- .return (res)
+-.end
+-
+-
+-=head2 C<exit(value)>
+-
+-=head3 DESCRIPTION
+-
+-Ends the interpretation of the WMLScript bytecode and returns the control
+-back to the caller of the WMLScript interpreter with the given return value.
+-This function can be used to perform a normal exit from a function in cases
+-where the execution of the WMLScript bytecode should be discontinued.
+-
+-=head3 PARAMETERS
+-
+-value = Any
+-
+-=head3 RETURN VALUE
+-
+-None (this function ends the interpretation).
+-
+-=cut
+-
+-.sub '_lang_exit' :anon
+- .param pmc value
+- .local pmc res
+- $I0 = isa value, 'WmlsString'
+- unless $I0 goto L1
+- $P0 = value.'parseInt'()
+- $I0 = $P0
+- exit $I0
+- L1:
+- $I0 = value
+- exit $I0
+-.end
+-
+-
+-=head2 C<abort(errorDescription)>
+-
+-=head3 DESCRIPTION
+-
+-Aborts the interpretation of the WMLScript bytecode and returns the control
+-back to the caller of the WMLScript interpreter with the return
+-errorDescription. This function can be used to perform an abnormal exit in
+-cases where the execution of the WMLScript should be discontinued due to
+-serious errors detected by the program. If the type of the errorDescription is
+-invalid, string "invalid" is used as the errorDescription instead.
+-
+-=head3 PARAMETERS
+-
+-errorDescription = String
+-
+-=head3 RETURN VALUE
+-
+-None (this function aborts the interpretation).
+-
+-=cut
+-
+-.sub '_lang_abort' :anon
+- .param pmc value
+- die value
+-.end
+-
+-
+-=head2 C<random(value)>
+-
+-=head3 DESCRIPTION
+-
+-Returns an integer value with positive sign that is greater than or equal to 0
+-but less than or equal to the given value. The return value is chosen
+-randomly or pseudo-randomly with approximately uniform distribution over
+-that range, using an implementation-dependent algorithm or strategy.
+-
+-If the value is of type floating-point, Float.int() is first used to calculate the
+-actual integer value.
+-
+-=head3 PARAMETERS
+-
+-value = Number
+-
+-=head3 RETURN VALUE
+-
+-Integer or invalid.
+-
+-=head3 EXCEPTIONS
+-
+-If value is equal to zero (0), the function returns zero.
+-
+-If value is less than zero (0), the function returns C<invalid>.
+-
+-=cut
+-
+-.sub '_lang_random' :anon
+- .param pmc value
+- .local pmc res
+- $P0 = value
+- $I0 = isa value, 'WmlsString'
+- unless $I0 goto L1
+- $P0 = value.'parseNumber'()
+- L1:
+- $I0 = isa $P0, 'WmlsInvalid'
+- if $I0 goto L2
+- $I0 = $P0
+- if $I0 < 0 goto L2
+- new $P0, 'Random'
+- $N0 = $P0
+- $N0 = mul $I0
+- $I0 = $N0
+- box res, $I0
+- goto L3
+- L2:
+- new res, 'WmlsInvalid'
+- L3:
+- .return (res)
+-.end
+-
+-
+-=head2 C<seed(value)>
+-
+-=head3 DESCRIPTION
+-
+-Initialises the pseudo-random number sequence and returns an empty
+-string. If the value is zero or a positive integer then the given value is used
+-for initialisation, otherwise a random, system dependent initialisation value
+-is used. A seed value of greater than or equal to zero results in a repeatable
+-sequence of pseudo-random numbers. A seed value of less than zero
+-results in a non-repeatable sequence of random numbers.
+-
+-If the value is of type floating-point, Float.int() is first used to calculate the
+-actual integer value. . If the value is non-numeric, invalid is returned and the
+-current seed is unchanged.
+-
+-=head3 PARAMETERS
+-
+-value = Number
+-
+-=head3 RETURN VALUE
+-
+-String or invalid.
+-
+-=cut
+-
+-.sub '_lang_seed' :anon
+- .param pmc value
+- .local pmc res
+- $P0 = value
+- $I0 = isa value, 'WmlsString'
+- unless $I0 goto L1
+- $P0 = value.'parseNumber'()
+- L1:
+- $I0 = isa $P0, 'WmlsInvalid'
+- if $I0 goto L2
+- $I0 = $P0
+- if $I0 >= 0 goto L3
+- $I0 = time
+- L3:
+- new $P0, 'Random'
+- $P0 = $I0
+- new res, 'WmlsString'
+- set res, ''
+- goto L4
+- L2:
+- new res, 'WmlsInvalid'
+- L4:
+- .return (res)
+-.end
+-
+-
+-=head2 C<characterSet()>
+-
+-=head3 DESCRIPTION
+-
+-Returns the character set supported by the WMLScript Interpreter. The
+-return value is an integer that denotes a MIBEnum value assigned by the
+-IANA for all character sets (see [WSP] for more information).
+-
+-=head3 RETURN VALUE
+-
+-Integer.
+-
+-=cut
+-
+-.sub '_lang_characterSet' :anon
+- .local pmc res
+- box res, 4 # latin1
+- .return (res)
+-.end
+-
+-
+-# Local Variables:
+-# mode: pir
+-# fill-column: 100
+-# End:
+-# vim: expandtab shiftwidth=4 ft=pir:
+--- origsrc/parrot-0.8.2/languages/WMLScript/runtime/wmlsstring.pir 2008-12-17 06:55:15.000000000 +0000
++++ src/parrot-0.8.2/languages/WMLScript/runtime/wmlsstring.pir 1970-01-01 00:00:00.000000000 +0000
+@@ -1,1101 +0,0 @@
+-# Copyright (C) 2006-2008, The Perl Foundation.
+-# $Id: /mirror/trunk/languages/WMLScript/runtime/wmlsstring.pir 33686 2008-12-08T15:50:21.922911Z fperrad $
+-
+-=head1 NAME
+-
+-runtime/wmlsstring.pir - WMLScript String library
+-
+-=head1 DESCRIPTION
+-
+-This library contains a set of string functions. A string is an array of
+-characters. Each of the characters has an index. The first character in a
+-string has an index zero (0). The length of the string is the number of
+-characters in the array.
+-
+-The user of the String library can specify a special separator by which
+-elements in a string can be separated. These elements can be accessed
+-by specifying the separator and the element index. The first element in a
+-string has an index zero (0). Each occurrence of the separator in the string
+-separates two elements (no escaping of separators is allowed).
+-
+-A White space character is one of the following characters:
+-
+-=over 4
+-
+-=item * TAB : Horizontal Tabulation
+-
+-=item * VT : Vertical Tabulation
+-
+-=item * FF : Form Feed
+-
+-=item * SP : Space
+-
+-=item * LF : Line Feed
+-
+-=item * CR : Carriage Return
+-
+-=back
+-
+-See "WMLScript Standard Libraries Specification", section 9 "String".
+-
+-=head1 FUNCTIONS
+-
+-=cut
+-
+-.HLL 'WMLScript'
+-.loadlib 'wmls_group'
+-.loadlib 'wmls_ops'
+-
+-
+-.sub 'getString'
+- new $P0, 'Hash'
+-
+- .const 'Sub' _string_length = '_string_length'
+- $P0[0] = _string_length
+- .const 'Sub' _string_isEmpty = '_string_isEmpty'
+- $P0[1] = _string_isEmpty
+- .const 'Sub' _string_charAt = '_string_charAt'
+- $P0[2] = _string_charAt
+- .const 'Sub' _string_subString = '_string_subString'
+- $P0[3] = _string_subString
+- .const 'Sub' _string_find = '_string_find'
+- $P0[4] = _string_find
+- .const 'Sub' _string_replace = '_string_replace'
+- $P0[5] = _string_replace
+- .const 'Sub' _string_elements = '_string_elements'
+- $P0[6] = _string_elements
+- .const 'Sub' _string_elementAt = '_string_elementAt'
+- $P0[7] = _string_elementAt
+- .const 'Sub' _string_removeAt = '_string_removeAt'
+- $P0[8] = _string_removeAt
+- .const 'Sub' _string_replaceAt = '_string_replaceAt'
+- $P0[9] = _string_replaceAt
+- .const 'Sub' _string_insertAt = '_string_insertAt'
+- $P0[10] = _string_insertAt
+- .const 'Sub' _string_squeeze = '_string_squeeze'
+- $P0[11] = _string_squeeze
+- .const 'Sub' _string_trim = '_string_trim'
+- $P0[12] = _string_trim
+- .const 'Sub' _string_compare = '_string_compare'
+- $P0[13] = _string_compare
+- .const 'Sub' _string_toString = '_string_toString'
+- $P0[14] = _string_toString
+- .const 'Sub' _string_format = '_string_format'
+- $P0[15] = _string_format
+-
+- .return ($P0)
+-.end
+-
+-
+-=head2 C<length(string)>
+-
+-=head3 DESCRIPTION
+-
+-Returns the length (number of characters) of the given string.
+-
+-=head3 PARAMETERS
+-
+-string = String
+-
+-=head3 RETURN VALUE
+-
+-Integer or invalid.
+-
+-=cut
+-
+-.sub '_string_length' :anon
+- .param pmc str
+- .local pmc res
+- $I0 = isa str, 'WmlsInvalid'
+- if $I0 goto L1
+- $S1 = str
+- $I1 = length $S1
+- box res, $I1
+- .return (res)
+- L1:
+- new res, 'WmlsInvalid'
+- .return (res)
+-.end
+-
+-
+-=head2 C<isEmpty(string)>
+-
+-=head3 DESCRIPTION
+-
+-Returns a boolean true if the string length is zero and boolean false
+-otherwise.
+-
+-=head3 PARAMETERS
+-
+-string = String
+-
+-=head3 RETURN VALUE
+-
+-Boolean or invalid.
+-
+-=cut
+-
+-.sub '_string_isEmpty' :anon
+- .param pmc str
+- .local pmc res
+- $I0 = isa str, 'WmlsInvalid'
+- if $I0 goto L1
+- $S1 = str
+- $I1 = length $S1
+- new res, 'WmlsBoolean'
+- set res, 0
+- if $I1 goto L2
+- set res, 1
+- L2:
+- .return (res)
+- L1:
+- new res, 'WmlsInvalid'
+- .return (res)
+-.end
+-
+-
+-=head2 C<charAt(string, index)>
+-
+-=head3 DESCRIPTION
+-
+-Returns a new string of length one containing the character at the specified
+-index of the given string.
+-
+-If the index is of type floating-point, Float.int() is first used to calculate the
+-actual integer index.
+-
+-=head3 PARAMETERS
+-
+-string = String
+-
+-index = Number (the index of the character to be returned)
+-
+-=head3 RETURN VALUE
+-
+-String or invalid.
+-
+-=head3 EXCEPTIONS
+-
+-If index is out of range then an empty string (C<"">) is returned.
+-
+-=cut
+-
+-.sub '_string_charAt' :anon
+- .param pmc str
+- .param pmc index_
+- .local pmc res
+- $I0 = isa str, 'WmlsInvalid'
+- if $I0 goto L1
+- $I0 = isa index_, 'WmlsInteger'
+- if $I0 goto L2
+- $I0 = isa index_, 'WmlsFloat'
+- if $I0 goto L2
+- goto L1
+- L2:
+- $S1 = str
+- $I1 = length $S1
+- $I2 = index_
+- if $I2 < 0 goto L3
+- if $I2 >= $I1 goto L3
+- $S0 = substr $S1, $I2, 1
+- box res, $S0
+- .return (res)
+- L3:
+- new res, 'WmlsString'
+- .return (res)
+- L1:
+- new res, 'WmlsInvalid'
+- .return (res)
+-.end
+-
+-
+-=head2 C<subString(string, startIndex, length)>
+-
+-=head3 DESCRIPTION
+-
+-Returns a new string that is a substring of the given string. The substring
+-begins at the specified startIndex and its length (number of characters) is
+-the given length. If the startIndex is less than 0 then 0 is used for the
+-startIndex. If the length is larger than the remaining number of characters in
+-the string, the length is replaced with the number of remaining characters.
+-
+-If the startIndex or the length is of type floating-point, Float.int() is first used to
+-calculate the actual integer value.
+-
+-=head3 PARAMETERS
+-
+-string = String
+-
+-startIndex = Number (the beginning index, inclusive)
+-
+-length = Number (the length of the substring)
+-
+-=head3 RETURN VALUE
+-
+-String or invalid.
+-
+-=head3 EXCEPTIONS
+-
+-If startIndex is larger than the last index an empty string (C<"">) is returned.
+-
+-If length <= 0 an empty string (C<"">) is returned.
+-
+-=cut
+-
+-.sub '_string_subString' :anon
+- .param pmc String
+- .param pmc startIndex
+- .param pmc Length
+- .local pmc res
+- $I0 = isa String, 'WmlsInvalid'
+- if $I0 goto L1
+- $I0 = isa startIndex, 'WmlsInteger'
+- if $I0 goto L2
+- $I0 = isa startIndex, 'WmlsFloat'
+- if $I0 goto L2
+- goto L1
+- L2:
+- $I0 = isa Length, 'WmlsInteger'
+- if $I0 goto L3
+- $I0 = isa Length, 'WmlsFloat'
+- if $I0 goto L3
+- goto L1
+- L3:
+- $S1 = String
+- $I1 = length $S1
+- $I2 = startIndex
+- if $I2 >= 0 goto L4
+- $I2 = 0
+- L4:
+- if $I2 >= $I1 goto L5
+- $I3 = Length
+- if $I3 <= 0 goto L5
+- $S0 = substr $S1, $I2, $I3
+- box res, $S0
+- .return (res)
+- L5:
+- new res, 'WmlsString'
+- .return (res)
+- L1:
+- new res, 'WmlsInvalid'
+- .return (res)
+-.end
+-
+-
+-=head2 C<find(string, subString)>
+-
+-=head3 DESCRIPTION
+-
+-Returns the index of the first character in the string that matches the
+-requested subString. If no match is found integer value -1 is returned.
+-
+-Two strings are defined to match when they are identical. Characters with
+-multiple possible representations match only if they have the same
+-representation in both strings. No case folding is performed.
+-
+-=head3 PARAMETERS
+-
+-string = String
+-
+-subString = String
+-
+-=head3 RETURN VALUE
+-
+-Integer or invalid.
+-
+-=head3 EXCEPTIONS
+-
+-If subString is an empty string (C<"">), an invalid value is returned.
+-
+-=cut
+-
+-.sub '_string_find' :anon
+- .param pmc String
+- .param pmc subString
+- .local pmc res
+- $I0 = isa String, 'WmlsInvalid'
+- if $I0 goto L1
+- $I0 = isa subString, 'WmlsInvalid'
+- if $I0 goto L1
+- $S1 = String
+- $S2 = subString
+- $I2 = length $S2
+- if $I2 == 0 goto L1
+- $I0 = index $S1, $S2
+- box res, $I0
+- .return (res)
+- L1:
+- new res, 'WmlsInvalid'
+- .return (res)
+-.end
+-
+-
+-=head2 C<replace(string, oldSubString, newSubString)>
+-
+-=head3 DESCRIPTION
+-
+-Returns a new string resulting from replacing all occurrences of
+-oldSubString in this string with newSubString.
+-
+-Two strings are defined to match when they are identical. Characters with
+-multiple possible representations match only if they have the same
+-representation in both strings. No case folding is performed.
+-
+-=head3 PARAMETERS
+-
+-string = String
+-
+-oldSubString = String
+-
+-newSubString = String
+-
+-=head3 RETURN VALUE
+-
+-String or invalid.
+-
+-=head3 EXCEPTIONS
+-
+-If oldSubString is an empty string an C<invalid> value is returned.
+-
+-=cut
+-
+-.sub '_string_replace' :anon
+- .param pmc String
+- .param pmc oldSubString
+- .param pmc newSubString
+- .local pmc res
+- $I0 = isa String, 'WmlsInvalid'
+- if $I0 goto L1
+- $I0 = isa oldSubString, 'WmlsInvalid'
+- if $I0 goto L1
+- $I0 = isa newSubString, 'WmlsInvalid'
+- if $I0 goto L1
+- $S1 = String
+- $S2 = oldSubString
+- $I2 = length $S2
+- if $I2 == 0 goto L1
+- $S3 = newSubString
+- $P0 = split $S2, $S1
+- $S0 = join $S3, $P0
+- box res, $S0
+- .return (res)
+- L1:
+- new res, 'WmlsInvalid'
+- .return (res)
+-.end
+-
+-
+-=head2 C<elements(string, separator)>
+-
+-=head3 DESCRIPTION
+-
+-Returns the number of elements in the given string separated by the given
+-separator. Empty string ("") is a valid element (thus, this function can never
+-return a value that is less or equal to zero).
+-
+-=head3 PARAMETERS
+-
+-string = String
+-
+-separator = String (the first character of the string used as separator)
+-
+-=head3 RETURN VALUE
+-
+-Integer or invalid.
+-
+-=head3 EXCEPTIONS
+-
+-Returns C<invalid> if the separator is an empty string.
+-
+-=cut
+-
+-.sub '_string_elements' :anon
+- .param pmc str
+- .param pmc separator
+- .local pmc res
+- $I0 = isa str, 'WmlsInvalid'
+- if $I0 goto L1
+- $I0 = isa separator, 'WmlsInvalid'
+- if $I0 goto L1
+- $S1 = str
+- $S2 = separator
+- $I2 = length $S2
+- if $I2 == 0 goto L1
+- $S2 = substr $S2, 0, 1
+- $I1 = length $S1
+- if $I1 != 0 goto L2
+- box res, 1
+- .return (res)
+- L2:
+- $P0 = split $S2, $S1
+- $I0 = elements $P0
+- box res, $I0
+- .return (res)
+- L1:
+- new res, 'WmlsInvalid'
+- .return (res)
+-.end
+-
+-
+-=head2 C<elementAt(string, index, separator)>
+-
+-=head3 DESCRIPTION
+-
+-Search string for index'th element, elements being separated by separator
+-and return the corresponding element. If the index is less than 0 then the first
+-element is returned. If the index is larger than the number of elements then
+-the last element is returned. If the string is an empty string then an empty
+-string is returned.
+-
+-If the index is of type floating-point, Float.int() is first used to calculate the
+-actual index value.
+-
+-=head3 PARAMETERS
+-
+-string = String
+-
+-index = Number (the index of the element to be returned)
+-
+-separator = String (the first character of the string used as separator)
+-
+-=head3 RETURN VALUE
+-
+-String or invalid.
+-
+-=head3 EXCEPTIONS
+-
+-Returns C<invalid> if the separator is an empty string.
+-
+-=cut
+-
+-.sub '_string_elementAt' :anon
+- .param pmc str
+- .param pmc index_
+- .param pmc separator
+- .local pmc res
+- $I0 = isa str, 'WmlsInvalid'
+- if $I0 goto L1
+- $I0 = isa index_, 'WmlsInteger'
+- if $I0 goto L2
+- $I0 = isa index_, 'WmlsFloat'
+- if $I0 goto L2
+- goto L1
+- L2:
+- $I0 = isa separator, 'WmlsInvalid'
+- if $I0 goto L1
+- $S1 = str
+- $I2 = index_
+- if $I2 >= 0 goto L3
+- $I2 = 0
+- L3:
+- $S3 = separator
+- $I3 = length $S3
+- if $I3 == 0 goto L1
+- $S3 = substr $S3, 0, 1
+- $I1 = length $S1
+- if $I1 != 0 goto L4
+- new res, 'WmlsString'
+- .return (res)
+- L4:
+- $P0 = split $S3, $S1
+- $I0 = elements $P0
+- if $I2 < $I0 goto L5
+- $I2 = $I0 - 1
+- L5:
+- $S0 = $P0[$I2]
+- box res, $S0
+- .return (res)
+- L1:
+- new res, 'WmlsInvalid'
+- .return (res)
+-.end
+-
+-
+-=head2 C<removeAt(string, index, separator)>
+-
+-=head3 DESCRIPTION
+-
+-Returns a new string where the element and the corresponding separator (if
+-existing) with the given index are removed from the given string. If the index
+-is less than 0 then the first element is removed. If the index is larger than the
+-number of elements then the last element is removed. If the string is empty,
+-the function returns a new empty string.
+-
+-If the index is of type floating-point, Float.int() is first used to calculate the
+-actual index value.
+-
+-=head3 PARAMETERS
+-
+-string = String
+-
+-index = Number (the index of the element to be deleted)
+-
+-separator = String (the first character of the string used as separator)
+-
+-=head3 RETURN VALUE
+-
+-String or invalid.
+-
+-=head3 EXCEPTIONS
+-
+-Returns C<invalid> if the separator is an empty string.
+-
+-=cut
+-
+-.sub '_string_removeAt' :anon
+- .param pmc str
+- .param pmc index_
+- .param pmc separator
+- .local pmc res
+- $I0 = isa str, 'WmlsInvalid'
+- if $I0 goto L1
+- $I0 = isa index_, 'WmlsInteger'
+- if $I0 goto L2
+- $I0 = isa index_, 'WmlsFloat'
+- if $I0 goto L2
+- goto L1
+- L2:
+- $I0 = isa separator, 'WmlsInvalid'
+- if $I0 goto L1
+- $S1 = str
+- $I2 = index_
+- if $I2 >= 0 goto L3
+- $I2 = 0
+- L3:
+- $S3 = separator
+- $I3 = length $S3
+- if $I3 == 0 goto L1
+- $S3 = substr $S3, 0, 1
+- $I1 = length $S1
+- if $I1 != 0 goto L4
+- new res, 'WmlsString'
+- .return (res)
+- L4:
+- $P0 = split $S3, $S1
+- $I4 = elements $P0
+- if $I2 < $I4 goto L5
+- $I2 = $I4 - 1
+- L5:
+- dec $I4
+- new $P1, 'Array'
+- set $P1, $I4
+- $I0 = 0
+- $I1 = 0
+- L6:
+- unless $I1 < $I4 goto L7
+- $S0 = $P0[$I0]
+- $P1[$I1] = $S0
+- if $I0 == $I2 goto L8
+- inc $I1
+- L8:
+- inc $I0
+- goto L6
+- L7:
+- $S0 = join $S3, $P1
+- box res, $S0
+- .return (res)
+- L1:
+- new res, 'WmlsInvalid'
+- .return (res)
+-.end
+-
+-
+-=head2 C<replaceAt(string, element, index, separator)>
+-
+-=head3 DESCRIPTION
+-
+-Returns a string with the current element at the specified index replaced with
+-the given element. If the index is less than 0 then the first element is
+-replaced. If the index is larger than the number of elements then the last
+-element is replaced. If the string is empty, the function returns a new string
+-with the given element.
+-
+-If the index is of type floating-point, Float.int() is first used to calculate the
+-actual index value.
+-
+-=head3 PARAMETERS
+-
+-string = String
+-
+-element = String
+-
+-index = Number (the index of the element to be replaced)
+-
+-separator = String (the first character of the string used as separator)
+-
+-=head3 RETURN VALUE
+-
+-String or invalid.
+-
+-=head3 EXCEPTIONS
+-
+-Returns C<invalid> if the separator is an empty string.
+-
+-=cut
+-
+-.sub '_string_replaceAt' :anon
+- .param pmc str
+- .param pmc element
+- .param pmc index_
+- .param pmc separator
+- .local pmc res
+- $I0 = isa str, 'WmlsInvalid'
+- if $I0 goto L1
+- $I0 = isa element, 'WmlsInvalid'
+- if $I0 goto L1
+- $I0 = isa index_, 'WmlsInteger'
+- if $I0 goto L2
+- $I0 = isa index_, 'WmlsFloat'
+- if $I0 goto L2
+- goto L1
+- L2:
+- $I0 = isa separator, 'WmlsInvalid'
+- if $I0 goto L1
+- $S1 = str
+- $S2 = element
+- $I3 = index_
+- if $I3 >= 0 goto L3
+- $I3 = 0
+- L3:
+- $S4 = separator
+- $I4 = length $S4
+- if $I4 == 0 goto L1
+- $S4 = substr $S4, 0, 1
+- $I1 = length $S1
+- if $I1 != 0 goto L4
+- box res, $S2
+- .return (res)
+- L4:
+- $P0 = split $S4, $S1
+- $I0 = elements $P0
+- if $I3 < $I0 goto L5
+- $I3 = $I0 - 1
+- L5:
+- $P0[$I3] = $S2
+- $S0 = join $S4, $P0
+- box res, $S0
+- .return (res)
+- L1:
+- new res, 'WmlsInvalid'
+- .return (res)
+-.end
+-
+-
+-=head2 C<insertAt(string, element, index, separator)>
+-
+-=head3 DESCRIPTION
+-
+-Returns a string with the element and the corresponding separator (if
+-needed) inserted at the specified element index of the original string. If the
+-index is less than 0 then 0 is used as the index. If the index is larger than the
+-number of elements then the element is appended at the end of the string. If
+-the string is empty, the function returns a new string with the given element.
+-
+-If the index is of type floating-point, Float.int() is first used to calculate the
+-actual index value.
+-
+-=head3 PARAMETERS
+-
+-string = String (original string)
+-
+-element = String (element to be inserted)
+-
+-index = Number (the index of the element to be added)
+-
+-separator = String (the first character of the string used as separator)
+-
+-=head3 RETURN VALUE
+-
+-String or invalid.
+-
+-=head3 EXCEPTIONS
+-
+-Returns C<invalid> if the separator is an empty string.
+-
+-=cut
+-
+-.sub '_string_insertAt' :anon
+- .param pmc str
+- .param pmc element
+- .param pmc index_
+- .param pmc separator
+- .local pmc res
+- $I0 = isa str, 'WmlsInvalid'
+- if $I0 goto L1
+- $I0 = isa element, 'WmlsInvalid'
+- if $I0 goto L1
+- $I0 = isa index_, 'WmlsInteger'
+- if $I0 goto L2
+- $I0 = isa index_, 'WmlsFloat'
+- if $I0 goto L2
+- goto L1
+- L2:
+- $I0 = isa separator, 'WmlsInvalid'
+- if $I0 goto L1
+- $S1 = str
+- $S2 = element
+- $I3 = index_
+- if $I3 >= 0 goto L3
+- $I3 = 0
+- L3:
+- $S4 = separator
+- $I4 = length $S4
+- if $I4 == 0 goto L1
+- $S4 = substr $S4, 0, 1
+- $I1 = length $S1
+- if $I1 != 0 goto L4
+- box res, $S2
+- .return (res)
+- L4:
+- $P0 = split $S4, $S1
+- $I5 = elements $P0
+- if $I3 <= $I5 goto L5
+- $I3 = $I5
+- L5:
+- $I6 = $I5 + 1
+- new $P1, 'Array'
+- set $P1, $I6
+- $I0 = 0
+- $I1 = 0
+- L6:
+- unless $I0 < $I5 goto L7
+- if $I1 != $I3 goto L8
+- inc $I1
+- L8:
+- $S0 = $P0[$I0]
+- $P1[$I1] = $S0
+- inc $I0
+- inc $I1
+- goto L6
+- L7:
+- $P1[$I3] = $S2
+- $S0 = join $S4, $P1
+- box res, $S0
+- .return (res)
+- L1:
+- new res, 'WmlsInvalid'
+- .return (res)
+-.end
+-
+-
+-=head2 C<squeeze(string)>
+-
+-=head3 DESCRIPTION
+-
+-Returns a string where all consecutive series of white spaces within the
+-string are reduced to single inter-word space.
+-
+-=head3 PARAMETERS
+-
+-String = String
+-
+-=head3 RETURN VALUE
+-
+-String or invalid.
+-
+-=cut
+-
+-.include 'cclass.pasm'
+-
+-.sub 'squeeze' :anon
+- .param string s
+- .local string res
+- .local int idx
+- res = ''
+- idx = 0
+- $I1 = length s
+- L1:
+- unless idx < $I1 goto L2
+- $I0 = is_cclass .CCLASS_WHITESPACE, s, idx
+- if $I0 goto L3
+- $S0 = substr s, idx, 1
+- res = concat $S0
+- inc idx
+- goto L1
+- L3:
+- res = concat ' '
+- L4:
+- inc idx
+- $I0 = is_cclass .CCLASS_WHITESPACE, s, idx
+- if $I0 goto L4
+- goto L1
+- L2:
+- .return (res)
+-.end
+-
+-.sub '_string_squeeze' :anon
+- .param pmc str
+- .local pmc res
+- $I0 = isa str, 'WmlsInvalid'
+- if $I0 goto L1
+- $S1 = str
+- $S0 = squeeze($S1)
+- box res, $S0
+- .return (res)
+- L1:
+- new res, 'WmlsInvalid'
+- .return (res)
+-.end
+-
+-
+-=head2 C<trim(string)>
+-
+-=head3 DESCRIPTION
+-
+-Returns a string where all trailing and leading white spaces in the given
+-string have been trimmed.
+-
+-=head3 PARAMETERS
+-
+-String = String
+-
+-=head3 RETURN VALUE
+-
+-String or invalid.
+-
+-=cut
+-
+-.sub 'trim' :anon
+- .param string s
+- .local string res
+- $I1 = 0
+- L1:
+- $I0 = is_cclass .CCLASS_WHITESPACE, s, $I1
+- unless $I0 goto L2
+- inc $I1
+- goto L1
+- L2:
+- $I2 = length s
+- L3:
+- dec $I2
+- $I0 = is_cclass .CCLASS_WHITESPACE, s, $I2
+- if $I0 goto L3
+- inc $I2
+- $I2 -= $I1
+- res = substr s, $I1, $I2
+- .return (res)
+-.end
+-
+-.sub '_string_trim' :anon
+- .param pmc str
+- .local pmc res
+- $I0 = isa str, 'WmlsInvalid'
+- if $I0 goto L1
+- $S1 = str
+- $S0 = trim($S1)
+- box res, $S0
+- .return (res)
+- L1:
+- new res, 'WmlsInvalid'
+- .return (res)
+-.end
+-
+-
+-=head2 C<compare(string1, string2)>
+-
+-=head3 DESCRIPTION
+-
+-The return value indicates the lexicographic relation of string1 to string2. The
+-relation is based on the relation of the character codes in the native
+-character set. The return value is -1 if string1 is less than string2, 0 if string1
+-is identical to string2 or 1 if string1 is greater than string2.
+-
+-=head3 PARAMETERS
+-
+-String1 = String
+-
+-String2 = String
+-
+-=head3 RETURN VALUE
+-
+-Integer or invalid.
+-
+-=cut
+-
+-.sub '_string_compare' :anon
+- .param pmc string1
+- .param pmc string2
+- .local pmc res
+- $I0 = isa string1, 'WmlsInvalid'
+- if $I0 goto L1
+- $I0 = isa string2, 'WmlsInvalid'
+- if $I0 goto L1
+- $S1 = string1
+- $S2 = string2
+- if $S1 >= $S2 goto L2
+- box res, -1
+- .return (res)
+- L2:
+- if $S1 > $S2 goto L3
+- box res, 0
+- .return (res)
+- L3:
+- box res, 1
+- .return (res)
+- L1:
+- new res, 'WmlsInvalid'
+- .return (res)
+-.end
+-
+-
+-=head2 C<toString(value)>
+-
+-=head3 DESCRIPTION
+-
+-Returns a string representation of the given value. This function performs
+-exactly the same conversions as supported by the [WMLScript] language
+-(automatic conversion from boolean, integer and floating-point values to
+-strings) except that C<invalid> value returns the string C<"invalid">.
+-
+-=head3 PARAMETERS
+-
+-value = Any
+-
+-=head3 RETURN VALUE
+-
+-String.
+-
+-=cut
+-
+-.sub '_string_toString' :anon
+- .param pmc value
+- $S1 = value
+- .local pmc res
+- box res, $S1
+- .return (res)
+-.end
+-
+-
+-=head2 C<format(format, value)>
+-
+-=head3 DESCRIPTION
+-
+-Converts the given value to a string by using the given formatting provided as
+-a format string. The format string can contain only one format specifier,
+-which can be located anywhere inside the string. If more than one is
+-specified, only the first one (leftmost) is used and the remaining specifiers
+-are replaced by an empty string. The format specifier has the following form:
+-
+- % [width] [.precision] type
+-
+-The C<width> argument is a nonnegative decimal integer controlling the
+-minimum number of characters printed. If the number of characters in the
+-output value is less than the specified width, blanks are added to the left until
+-the minimum width is reached. The C<width> argument never causes the
+-value to be truncated. If the number of characters in the output value is
+-greater than the specified width or, if width is not given, all characters of the
+-value are printed (subject to the precision argument).
+-
+-The C<precision> argument specifies a nonnegative decimal integer,
+-preceded by a period (.), which can be used to set the precision of the output
+-value. The interpretation of this value depends on the given C<type>:
+-
+-=over 4
+-
+-=item d
+-
+-Specifies the minimum number of digits to be printed. If the number
+-of digits in the value is less than precision, the output value is
+-padded on the left with zeroes. The value is not truncated when the
+-number of digits exceeds precision. Default precision is 1. If
+-precision is specified as 0 and the value to be converted is 0, the
+-result is an empty string.
+-
+-=item f
+-
+-Specifies the number of digits after the decimal point. If a decimal
+-point appears, at least one digit appears before it. The value is
+-rounded to the appropriate number of digits. Default precision is 6; if
+-precision is 0 or if the period (.) appears without a number following
+-it, no decimal point is printed.
+-
+-=item s
+-
+-Specifies the maximum number of characters to be printed. By
+-default, all characters are printed.
+-
+-=back
+-
+-Unlike the C<width> argument, the C<precision> argument can cause either
+-truncation of the output value or rounding of a floating-point value.
+-
+-The C<type> argument is the only required format argument; it appears after
+-any optional format fields. The type character determines whether the given
+-value is interpreted as integer, floating-point or string. If the value argument
+-is of a different type than is specified by the type argument, it is converted
+-according to WMLScript standard automatic conversion rules, with the
+-addition that if value is of type floating-point and type is B<d>, Float.int() is called
+-to convert the value. The supported C<type> arguments are:
+-
+-=over 4
+-
+-=item d
+-
+-Integer: The output value has the form [-]dddd, where dddd is one
+-or more decimal digits.
+-
+-=item f
+-
+-Floating-point: The output value has the form [-]dddd.dddd, where
+-dddd is one or more decimal digits. The number of digits before the
+-decimal point depends on the magnitude of the number and the
+-number of digits after the decimal point depends on the requested
+-precision. When the number of digits after the decimal point in the value
+-is less than the precision, letter 0 should be padded to fill columns
+-(e.g. the result of String.format("%2.3f", 1.2) will be
+-"1.200")
+-
+-=item s
+-
+-String: Characters are printed up to the end of the string or until the
+-precision value is reached. When the width is larger than
+-precision, the width should be ignored.
+-
+-=back
+-
+-A literal percent character (%) may be included in the format string by
+-preceding it with another percent character (%%).
+-
+-MINIMALIST IMPLEMENTATION
+-
+-=head3 PARAMETERS
+-
+-format = String
+-
+-value = Any
+-
+-=head3 RETURN VALUE
+-
+-String or invalid.
+-
+-=head3 EXCEPTIONS
+-
+-Illegal format specifier results in an C<invalid> return value.
+-
+-=cut
+-
+-.sub '_string_format' :anon
+- .param pmc format
+- .param pmc value
+- .local pmc res
+- $I0 = isa format, 'WmlsInvalid'
+- if $I0 goto L1
+- $S0 = format
+- new $P0, 'Array'
+- set $P0, 1
+- $P0[0] = value
+- L2:
+- $S1 = sprintf $S0, $P0
+- box res, $S1
+- .return (res)
+- L1:
+- new res, 'WmlsInvalid'
+- .return (res)
+-.end
+-
+-
+-# Local Variables:
+-# mode: pir
+-# fill-column: 100
+-# End:
+-# vim: expandtab shiftwidth=4 ft=pir:
+--- origsrc/parrot-0.8.2/languages/WMLScript/src/script.pir 2008-12-17 06:55:15.000000000 +0000
++++ src/parrot-0.8.2/languages/WMLScript/src/script.pir 2008-12-25 13:44:20.694000000 +0000
+@@ -104,7 +104,7 @@
+
+ $P0 = get_hll_global '@stdlibs'
+ unless null $P0 goto L1
+- load_bytecode 'languages/WMLScript/src/WMLScript.pbc'
++ load_bytecode 'WMLScript.pbc'
+ L1:
+ PIRCODE
+
+--- origsrc/parrot-0.8.2/languages/WMLScript/src/wmlsstdlibs.pir 2008-12-17 06:55:15.000000000 +0000
++++ src/parrot-0.8.2/languages/WMLScript/src/wmlsstdlibs.pir 2008-12-25 13:44:20.819000000 +0000
+@@ -29,10 +29,10 @@
+
+ .sub '__onload' :load :anon
+ # print "__onload (wmlsstdlibs.pir)\n"
+- load_bytecode 'languages/WMLScript/runtime/wmlslang.pbc'
+- load_bytecode 'languages/WMLScript/runtime/wmlsfloat.pbc'
+- load_bytecode 'languages/WMLScript/runtime/wmlsstring.pbc'
+- load_bytecode 'languages/WMLScript/runtime/wmlsconsole.pbc'
++ load_bytecode 'WMLScript/wmlslang.pbc'
++ load_bytecode 'WMLScript/wmlsfloat.pbc'
++ load_bytecode 'WMLScript/wmlsstring.pbc'
++ load_bytecode 'WMLScript/wmlsconsole.pbc'
+
+ new $P0, 'Hash'
+ $P1 = getLang()
+--- origsrc/parrot-0.8.2/languages/WMLScript/t/runtime.t 2008-12-17 06:55:15.000000000 +0000
++++ src/parrot-0.8.2/languages/WMLScript/t/runtime.t 2008-12-25 13:44:20.834625000 +0000
+@@ -23,7 +23,7 @@
+ .loadlib 'wmls_ops'
+
+ .sub '_init' :anon
+- load_bytecode 'languages/WMLScript/src/WMLScript.pbc'
++ load_bytecode 'WMLScript.pbc'
+ .end
+
+ .sub 'function0' :anon
+--- origsrc/parrot-0.8.2/languages/WMLScript/wmls2pbc.pir 2008-12-17 06:55:15.000000000 +0000
++++ src/parrot-0.8.2/languages/WMLScript/wmls2pbc.pir 2008-12-25 13:44:20.834625000 +0000
+@@ -25,7 +25,7 @@
+
+ .sub 'main' :main
+ .param pmc argv
+- load_bytecode 'languages/WMLScript/src/WMLScript.pbc'
++ load_bytecode 'WMLScript'
+ .local int argc
+ .local string progname
+ .local string filename
+--- origsrc/parrot-0.8.2/languages/WMLScript/wmls2pir.pir 2008-12-17 06:55:15.000000000 +0000
++++ src/parrot-0.8.2/languages/WMLScript/wmls2pir.pir 2008-12-25 13:44:20.928375000 +0000
+@@ -25,7 +25,7 @@
+
+ .sub 'main' :main
+ .param pmc argv
+- load_bytecode 'languages/WMLScript/src/WMLScript.pbc'
++ load_bytecode 'WMLScript'
+ .local int argc
+ .local string progname
+ .local string filename
+--- origsrc/parrot-0.8.2/languages/WMLScript/wmlsd.pir 2008-12-17 06:55:15.000000000 +0000
++++ src/parrot-0.8.2/languages/WMLScript/wmlsd.pir 2008-12-25 13:44:20.928375000 +0000
+@@ -25,7 +25,7 @@
+
+ .sub 'main' :main
+ .param pmc argv
+- load_bytecode 'languages/WMLScript/src/WMLScript.pbc'
++ load_bytecode 'WMLScript'
+ .local int argc
+ .local string progname
+ .local string filename
+--- origsrc/parrot-0.8.2/languages/WMLScript/wmlsi.pir 2008-12-17 06:55:15.000000000 +0000
++++ src/parrot-0.8.2/languages/WMLScript/wmlsi.pir 2008-12-25 13:44:20.928375000 +0000
+@@ -26,7 +26,7 @@
+
+ .sub 'main' :main
+ .param pmc argv
+- load_bytecode 'languages/WMLScript/src/WMLScript.pbc'
++ load_bytecode 'WMLScript'
+ .local int argc
+ .local string progname
+ .local string filename
+--- origsrc/parrot-0.8.2/languages/Zcode/config/makefiles/root.in 2008-06-23 02:30:46.000000000 +0000
++++ src/parrot-0.8.2/languages/Zcode/config/makefiles/root.in 2008-12-25 13:44:20.990875000 +0000
+@@ -1,14 +1,20 @@
+ # $Id: /mirror/trunk/languages/Zcode/config/makefiles/root.in 28688 2008-06-23T00:33:41.905243Z coke $
+
+ # Makefile for languages/Zcode
++HLLNAME = Zcode
+
+ # Setup of some commands
+-PARROT = ../../parrot@exe@
+-PERL = @perl@
+-RM_F = @rm_f@
+-#CONDITIONED_LINE(darwin):
+-#CONDITIONED_LINE(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
+-#CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++BUILD_DIR = @build_dir@
++PERL = @perl@
++RM_F = @rm_f@
++
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
++PARROT = ../../parrot@exe@
++PBC_TO_EXE = ../../pbc_to_exe@exe@
++RECONFIGURE = $(PERL) $(BUILD_DIR)/tools/dev/reconfigure.pl
++#IF(darwin):
++#IF(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
++#IF(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
+
+ EXAMPLES = examples/small.z3 examples/hello.z3
+
+@@ -27,9 +33,7 @@
+ @echo " Requires an Inform compiler!"
+ @echo ""
+ @echo " clean: clean up temporary files (none presently)"
+- @echo ""
+ @echo " realclean: clean up generated files"
+- @echo ""
+ @echo " maintclean: clean up Z-code files"
+ @echo ""
+ @echo " help: print this help message"
+@@ -54,6 +58,10 @@
+ .inf.z3:
+ inform $< $@
+
++# regenerate the Makefile
++Makefile: config/makefiles/root.in
++ cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=$(HLLNAME)
++
+ clean:
+ @echo "No temp files to clean"
+
+@@ -64,3 +72,9 @@
+
+ maintclean: realclean
+ $(RM_F) $(EXAMPLES) $(TEST_ZFILES)
++
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/languages/abc/config/makefiles/root.in 2008-06-23 02:30:48.000000000 +0000
++++ src/parrot-0.8.2/languages/abc/config/makefiles/root.in 2008-12-25 13:44:20.990875000 +0000
+@@ -4,29 +4,40 @@
+ PARROT_ARGS =
+
+ ## configuration settings
++HLLNAME = abc
+ BUILD_DIR = @build_dir@
+ LOAD_EXT = @load_ext@
+ O = @o@
++BIN_DIR = @bin_dir@
++LIB_DIR = @lib_dir@
++DOC_DIR = @doc_dir@
++MANDIR = @mandir@
+
+ ## Setup some commands
+ LN_S = @lns@
+ PERL = @perl@
+ RM_RF = @rm_rf@
+ CP = @cp@
++MKPATH = @mkpath@
++POD2MAN = pod2man
++
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
+ PARROT = ../../parrot@exe@
++PBC_TO_EXE = ../../pbc_to_exe@exe@
+ CAT = $(PERL) -MExtUtils::Command -e cat
+ BUILD_DYNPMC = $(PERL) $(BUILD_DIR)/tools/build/dynpmc.pl
+ RECONFIGURE = $(PERL) $(BUILD_DIR)/tools/dev/reconfigure.pl
+-#CONDITIONED_LINE(darwin):
+-#CONDITIONED_LINE(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
+-#CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++#IF(darwin):
++#IF(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
++#IF(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
+
+ ## places to look for things
+ PARROT_DYNEXT = $(BUILD_DIR)/runtime/parrot/dynext
+-PGE_LIBRARY = $(BUILD_DIR)/runtime/parrot/library/PGE
++PARROT_LIB = $(BUILD_DIR)/runtime/parrot/library
++PGE_LIBRARY = $(PARROT_LIB)/PGE
++PCT = $(PARROT_LIB)/PCT.pbc
+ PERL6GRAMMAR = $(PGE_LIBRARY)/Perl6Grammar.pbc
+ NQP = $(BUILD_DIR)/compilers/nqp/nqp.pbc
+-PCT = $(BUILD_DIR)/runtime/parrot/library/PCT.pbc
+
+ PMC_DIR = src/pmc
+
+@@ -37,19 +48,20 @@
+ SOURCES = abc.pir \
+ src/gen_grammar.pir \
+ src/gen_actions.pir \
+- src/gen_builtins.pir \
+-# $(ABC_GROUP)
++ src/gen_builtins.pir
+
+ BUILTINS_PIR = \
+ src/builtins/all.pir \
+
+-# PMCS = abc
+-# PMC_SOURCES = $(PMC_DIR)/abc.pmc
++DOCS = MAINTAINER README TODO
+
+ # the default target
+ abc.pbc: $(PARROT) $(SOURCES)
+ $(PARROT) $(PARROT_ARGS) -o abc.pbc abc.pir
+
++$(HLLNAME)@exe@: $(HLLNAME).pbc
++ $(PBC_TO_EXE) $(HLLNAME).pbc
++
+ src/gen_grammar.pir: $(PERL6GRAMMAR) src/parser/grammar.pg src/parser/grammar-oper.pg
+ $(PARROT) $(PARROT_ARGS) $(PERL6GRAMMAR) \
+ --output=src/gen_grammar.pir \
+@@ -63,25 +75,31 @@
+ src/gen_builtins.pir: $(BUILTINS_PIR)
+ $(CAT) $(BUILTINS_PIR) >src/gen_builtins.pir
+
+-$(ABC_GROUP): $(PARROT) $(PMC_SOURCES)
+- cd $(PMC_DIR) && $(BUILD_DYNPMC) generate $(PMCS)
+- cd $(PMC_DIR) && $(BUILD_DYNPMC) compile $(PMCS)
+- cd $(PMC_DIR) && $(BUILD_DYNPMC) linklibs $(PMCS)
+- cd $(PMC_DIR) && $(BUILD_DYNPMC) copy --destination=$(PARROT_DYNEXT) $(PMCS)
++installable : installable_$(HLLNAME)@exe@ $(HLLNAME).pbc
++ $(CP) installable_$(HLLNAME)@exe@ $(BUILD_DIR)
++ $(CP) $(HLLNAME).pbc $(PARROT_LIB)/$(HLLNAME).pbc
++
++installable_$(HLLNAME)@exe@ : $(HLLNAME).pbc
++ $(PBC_TO_EXE) $(HLLNAME).pbc --install
+
+ # regenerate the Makefile
+ Makefile: config/makefiles/root.in
+- cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=abc
++ cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=$(HLLNAME)
+
+ # This is a listing of all targets, that are meant to be called by users
+ help:
+ @echo ""
+ @echo "Following targets are available for the user:"
+ @echo ""
+- @echo " all: abc.pbc"
++ @echo " build: abc.pbc"
+ @echo " This is the default."
++ @echo " all: abc.pbc abc@exe@ installable"
++ @echo " installable: Create self-hosting bins and libs."
++ @echo " install: Install the installable targets and docs."
++ @echo ""
+ @echo "Testing:"
+ @echo " test: Run the test suite."
++ @echo " test-installable: Test self-hosting targets."
+ @echo " testclean: Clean up test results."
+ @echo ""
+ @echo "Cleaning:"
+@@ -96,6 +114,17 @@
+ test: all
+ prove -r t
+
++# TODO: rename build_dir. basic run for missing libs
++test-installable : installable
++ echo "2-1" | ./installable_$(HLLNAME)@exe@
++
++install : installable
++ $(CP) installable_$(HLLNAME)@exe@ $(DESTDIR)$(BIN_DIR)/parrot-$(HLLNAME)@exe@
++ $(CP) $(HLLNAME).pbc $(DESTDIR)$(LIB_DIR)/parrot/library/$(HLLNAME).pbc
++ $(POD2MAN) $(HLLNAME).pir > $(DESTDIR)$(MANDIR)/man1/parrot-$(HLLNAME).1
++ -$(MKPATH) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++ $(CP) $(DOCS) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++
+ testclean:
+ $(RM_RF) "t/*.pir" "t/*.out"
+
+@@ -104,17 +133,9 @@
+ src/gen_grammar.pir \
+ src/gen_actions.pir \
+ src/gen_builtins.pir \
+- $(PMC_DIR)/*.h \
+- $(PMC_DIR)/*.c \
+- $(PMC_DIR)/*.dump \
+- $(PMC_DIR)/*$(O) \
+- $(PMC_DIR)/*$(LOAD_EXT) \
+- $(PMC_DIR)/*.exp \
+- $(PMC_DIR)/*.ilk \
+- $(PMC_DIR)/*.manifest \
+- $(PMC_DIR)/*.pdb \
+- $(PMC_DIR)/*.lib \
+-
++ $(PARROT_LIB)/$(HLLNAME).pbc \
++ $(HLLNAME)@exe@ \
++ installable_$(HLLNAME)@exe@
+
+ clean: testclean
+ $(RM_RF) $(CLEANUPS)
+@@ -123,3 +144,9 @@
+ $(RM_RF) Makefile
+
+ distclean: realclean
++
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/languages/befunge/config/makefiles/root.in 2008-06-23 02:30:48.000000000 +0000
++++ src/parrot-0.8.2/languages/befunge/config/makefiles/root.in 2008-12-25 13:44:21.022125000 +0000
+@@ -1,48 +1,105 @@
+ # $Id: /mirror/trunk/languages/befunge/config/makefiles/root.in 28688 2008-06-23T00:33:41.905243Z coke $
+
+ # Makefile for languages/befunge
++HLLNAME = befunge
++
++## configuration settings
++BUILD_DIR = @build_dir@
++BIN_DIR = @bin_dir@
++LIB_DIR = @lib_dir@
++DOC_DIR = @doc_dir@
++MANDIR = @mandir@
+
+ # Setup of some commands
+-PARROT = ../../parrot
+-PERL = @perl@
+-RM_F = @rm_f@
+-#CONDITIONED_LINE(darwin):
+-#CONDITIONED_LINE(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
+-#CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++PERL = @perl@
++RM_F = @rm_f@
++CP = @cp@
++MKPATH = @mkpath@
++POD2MAN = pod2man
++
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
++PARROT = ../../parrot@exe@
++PBC_TO_EXE = ../../pbc_to_exe@exe@
++RECONFIGURE = $(PERL) @build_dir@/tools/dev/reconfigure.pl
++#IF(darwin):
++#IF(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
++#IF(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++PARROT_LIB = $(BUILD_DIR)/runtime/parrot/library
++
++DOCS = MAINTAINER README Changes
+
+-default: all
++build: befunge.pbc
++
++all: befunge.pbc Makefile befunge@exe@
+
+ help :
+ @echo ""
+ @echo "Following targets are available for the user:"
+ @echo ""
+- @echo " build: Create befunge.pbc"
++ @echo " build: befunge.pbc"
+ @echo " This is the default."
++ @echo " all: "
++ @echo " installable: Create self-hosting bins and libs."
++ @echo " install: Install the installable targets and docs."
+ @echo ""
+- @echo " test: run the test suite,"
+- @echo ""
+- @echo " clean: clean up temporary files"
++ @echo "Testing:"
++ @echo " test: Run the test suite."
++ @echo " test-installable: Test self-hosting targets."
+ @echo ""
+- @echo " realclean: clean up generated files"
++ @echo "Cleaning:"
++ @echo " clean: Basic cleaning up."
++ @echo " realclean: Removes also files generated by 'Configure.pl'"
++ @echo " distclean: Removes also anything built, in theory"
+ @echo ""
+- @echo " help: print this help message"
++ @echo "Misc:"
++ @echo " help: Print this help message"
+
+
+-all: build
++$(HLLNAME)@exe@: $(HLLNAME).pbc
++ $(PBC_TO_EXE) $(HLLNAME).pbc
+
+-build: befunge.pbc
++installable_$(HLLNAME)@exe@: $(HLLNAME).pbc
++ $(PBC_TO_EXE) $(HLLNAME).pbc --install
++
++installable : installable_$(HLLNAME)@exe@ $(HLLNAME).pbc
++ $(CP) installable_$(HLLNAME)@exe@ $(BUILD_DIR)
++ $(CP) $(HLLNAME).pbc $(PARROT_LIB)/$(HLLNAME).pbc
+
+ befunge.pbc: befunge.pasm debug.pasm flow.pasm io.pasm load.pasm maths.pasm stack.pasm
+ $(PARROT) -o befunge.pbc befunge.pasm
+
+ test: befunge.pbc
+- cd .. && $(PERL) t/harness --languages=befunge
++ cd .. && $(PERL) t/harness --languages=$(HLLNAME)
++
++# TODO: rename build_dir. basic run for missing libs
++test-installable : installable
++ ./installable_$(HLLNAME)@exe@ test.bef
++
++install : installable
++ $(CP) installable_$(HLLNAME)@exe@ $(DESTDIR)$(BIN_DIR)/parrot-$(HLLNAME)@exe@
++ $(CP) $(HLLNAME).pbc $(DESTDIR)$(LIB_DIR)/parrot/library/$(HLLNAME).pbc
++ $(POD2MAN) $(HLLNAME).pir > $(DESTDIR)$(MANDIR)/man1/parrot-$(HLLNAME).1
++ $(MKPATH) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++ $(CP) $(DOCS) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++
++# regenerate the Makefile
++Makefile: config/makefiles/root.in
++ cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=$(HLLNAME)
+
+ clean:
+ $(RM_F) core \
+ "*.pbc" \
+- "*~"
++ "*~" \
++ "$(HLLNAME)@exe@" \
++ "installable_$(HLLNAME)@exe@"
+
+ realclean: clean
+ $(RM_F) Makefile
+
++distclean: clean realclean
++
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/languages/befunge/debug.pasm 2007-11-10 04:48:03.000000000 +0000
++++ src/parrot-0.8.2/languages/befunge/debug.pasm 2008-12-25 13:44:21.037750000 +0000
+@@ -7,10 +7,10 @@
+ # when reaching it, or a location "y,x", or a column "c:nn"
+ # or a row "r:nn"
+ DEBUG_INITIALIZE:
+- new P3, .ResizablePMCArray
++ new P3, 'ResizablePMCArray'
+ set P3[0], 1 # Stop at first step.
+ repeat S10, "0", 128 # No char to break on.
+- new P4, .Hash
++ new P4, 'Hash'
+ set P3[1], P4 # The breakpoints.
+ ret
+
+--- origsrc/parrot-0.8.2/languages/bf/config/makefiles/root.in 2008-06-23 02:30:46.000000000 +0000
++++ src/parrot-0.8.2/languages/bf/config/makefiles/root.in 2008-12-25 13:44:21.100250000 +0000
+@@ -1,31 +1,84 @@
+-RM_F = @rm_f@
+-PERL = @perl@
+-PARROT=../../parrot
+-#CONDITIONED_LINE(darwin):
+-#CONDITIONED_LINE(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
+-#CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++# $Id: root.in 31315 2008-09-21 14:25:18Z rurban $
+
+-default: build
++HLLNAME = bf
++BIN_DIR = @bin_dir@
++LIB_DIR = @lib_dir@
++DOC_DIR = @doc_dir@
++MANDIR = @mandir@
++
++RM_F = @rm_f@
++PERL = @perl@
++CP = @cp@
++MKPATH = @mkpath@
++POD2MAN = pod2man
++
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
++PARROT = ../../parrot@exe@
++PBC_TO_EXE = ../../pbc_to_exe@exe@
++#IF(darwin):
++#IF(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
++#IF(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++PARROT_LIB = $(BUILD_DIR)/runtime/parrot/library
++
++DOCS = MAINTAINER README
++PBCS = bf.pbc bfc.pbc bfco.pbc
++EXES = installable_bf@exe@ installable_bfc@exe@ installable_bfco@exe@
++
++all : build
+
+ help :
+ @echo ""
+ @echo "Following targets are available for the user:"
+ @echo ""
+- @echo " build: build bf.pbc and bfc.pir"
++ @echo " build: build bf.pbc, bfc.pfc and bfco.pfc"
+ @echo " This is the default."
++ @echo " installable: Create self-hosting bins and libs."
++ @echo " install: Install the installable targets and docs."
+ @echo ""
+- @echo " test: run the test suite,"
++ @echo "Testing:"
++ @echo " test: Run the test suite."
++ @echo " test-installable: Test self-hosting targets."
++ @echo " testclean: Clean up test results."
+ @echo ""
+- @echo " clean: clean up temporary files"
++ @echo "Cleaning:"
++ @echo " clean: Basic cleaning up."
++ @echo " realclean: Removes also files generated by 'Configure.pl'"
++ @echo " distclean: Removes also anything built, in theory"
+ @echo ""
+- @echo " realclean: clean up generated files"
++ @echo "Misc:"
++ @echo " help: Print this help message."
+ @echo ""
+- @echo " help: print this help message"
+
+-test: build
++test : build
+ $(PERL) -Ilib -I../../lib t/harness
+
+-build: bf.pbc bfc.pbc bfco.pbc
++build: $(PBCS)
++
++installable: $(EXES) $(PBCS)
++ $(CP) installable_bf@exe@ $(BUILD_DIR)
++ $(CP) installable_bfc@exe@ $(BUILD_DIR)
++ $(CP) installable_bfco@exe@ $(BUILD_DIR)
++ $(CP) bf.pbc $(PARROT_LIB)/bf.pbc
++ $(CP) bfc.pbc $(PARROT_LIB)/bfco.pbc
++ $(CP) bfco.pbc $(PARROT_LIB)/bfco.pbc
++
++bf@exe@: bf.pbc
++ $(PBC_TO_EXE) bf.pbc
++
++bfc@exe@: bfc.pbc
++ $(PBC_TO_EXE) bfc.pbc
++
++bfco@exe@: bfco.pbc
++ $(PBC_TO_EXE) bfco.pbc
++
++installable_bf@exe@: bf.pbc
++ $(PBC_TO_EXE) bf.pbc --install
++
++installable_bfc@exe@: bfc.pbc
++ $(PBC_TO_EXE) bfc.pbc --install
++
++installable_bfco@exe@: bfco.pbc
++ $(PBC_TO_EXE) bfco.pbc --install
+
+ bf.pbc: bf.pasm
+ $(PARROT) -o bf.pbc bf.pasm
+@@ -36,9 +89,30 @@
+ bfco.pbc: bfco.pir
+ $(PARROT) -o bfco.pbc bfco.pir
+
++# TODO: rename build_dir. basic run for missing libs
++test-installable : installable
++ ./installable_bf@exe@ test.bf
++ ./installable_bfc@exe@ test.bf
++ ./installable_bfco@exe@ test.bf
++
++install : installable
++ $(CP) installable_bf@exe@ $(DESTDIR)$(BIN_DIR)/parrot-bf@exe@
++ $(CP) installable_bfc@exe@ $(DESTDIR)$(BIN_DIR)/parrot-bfc@exe@
++ $(CP) installable_bfco@exe@ $(DESTDIR)$(BIN_DIR)/parrot-bfco@exe@
++ $(CP) bf.pbc $(DESTDIR)$(LIB_DIR)/parrot/library/bf.pbc
++ $(CP) bfc.pbc $(DESTDIR)$(LIB_DIR)/parrot/library/bfc.pbc
++ $(CP) bfco.pbc $(DESTDIR)$(LIB_DIR)/parrot/library/bfco.pbc
++ $(MKPATH) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++ $(CP) $(DOCS) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++
+ clean:
+- $(RM_F) core "*.pbc" "*~"
++ $(RM_F) core "*.pbc" "*~" "installable_bf*@exe@" "$(PARROT_LIB)/bf*.pbc"
+
+ realclean: clean
+ $(RM_F) Makefile
+
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/languages/c99/config/makefiles/cpp.in 2008-05-28 19:43:55.000000000 +0000
++++ src/parrot-0.8.2/languages/c99/config/makefiles/cpp.in 2008-12-25 13:44:21.147125000 +0000
+@@ -4,6 +4,7 @@
+ PARROT_ARGS =
+
+ ## configuration settings
++HLLNAME = cpp
+ BUILD_DIR = @build_dir@
+ LOAD_EXT = @load_ext@
+ O = @o@
+@@ -13,13 +14,19 @@
+ PERL = @perl@
+ RM_RF = @rm_rf@
+ CP = @cp@
+-PARROT = ../../../../parrot@exe@
++MKPATH = @mkpath@
++POD2MAN = pod2man
++
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
++PARROT = $(BUILD_DIR)/parrot@exe@
++PBC_TO_EXE = $(BUILD_DIR)/pbc_to_exe@exe@
+ CAT = $(PERL) -MExtUtils::Command -e cat
+ BUILD_DYNPMC = $(PERL) $(BUILD_DIR)/tools/build/dynpmc.pl
+ RECONFIGURE = $(PERL) $(BUILD_DIR)/tools/dev/reconfigure.pl
+
+ ## places to look for things
+ PARROT_DYNEXT = $(BUILD_DIR)/runtime/parrot/dynext
++PARROT_LIB = $(BUILD_DIR)/runtime/parrot/library
+ PGE_LIBRARY = $(BUILD_DIR)/runtime/parrot/library/PGE
+ PERL6GRAMMAR = $(PGE_LIBRARY)/Perl6Grammar.pbc
+ NQP = $(BUILD_DIR)/compilers/nqp/nqp.pbc
+@@ -27,26 +34,28 @@
+
+ PMC_DIR = src/pmc
+
+-all: cpp.pbc
++build: cpp.pbc
+
+-C_GROUP = $(PMC_DIR)/c_group$(LOAD_EXT)
++all: cpp.pbc cpp@exe@ src/cpp/Makefile installable
+
+ SOURCES = cpp.pir \
+ src/gen_grammar.pir \
+ src/gen_actions.pir \
+- src/gen_builtins.pir \
+-# $(C_GROUP)
++ src/gen_builtins.pir
+
+ BUILTINS_PIR = \
+ src/builtins/say.pir \
+
+-# PMCS = c
+-# PMC_SOURCES = $(PMC_DIR)/c.pmc
+-
+ # the default target
+-cpp.pbc: $(PARROT) $(SOURCES)
++cpp.pbc: $(SOURCES)
+ $(PARROT) $(PARROT_ARGS) -o cpp.pbc cpp.pir
+
++cpp@exe@ : cpp.pbc
++ $(PBC_TO_EXE) cpp.pbc
++
++installable_cpp@exe@ : cpp.pbc
++ $(PBC_TO_EXE) cpp.pbc --install
++
+ src/gen_grammar.pir: $(PERL6GRAMMAR) src/parser/grammar.pg
+ $(PARROT) $(PARROT_ARGS) $(PERL6GRAMMAR) \
+ --output=src/gen_grammar.pir \
+@@ -59,22 +68,20 @@
+ src/gen_builtins.pir: $(BUILTINS_PIR)
+ $(CAT) $(BUILTINS_PIR) >src/gen_builtins.pir
+
+-$(C_GROUP): $(PARROT) $(PMC_SOURCES)
+- cd $(PMC_DIR) && $(BUILD_DYNPMC) generate $(PMCS)
+- cd $(PMC_DIR) && $(BUILD_DYNPMC) compile $(PMCS)
+- cd $(PMC_DIR) && $(BUILD_DYNPMC) linklibs $(PMCS)
+- cd $(PMC_DIR) && $(BUILD_DYNPMC) copy --destination=$(PARROT_DYNEXT) $(PMCS)
+-
+ # regenerate the Makefile
+ Makefile: ../../config/makefiles/cpp.in
+ cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=c99
+
++installable : installable_cpp@exe@ cpp.pbc
++ $(CP) installable_cpp@exe@ $(BUILD_DIR)
++ $(CP) cpp.pbc $(PARROT_LIB)/cpp.pbc
++
+ # This is a listing of all targets, that are meant to be called by users
+ help:
+ @echo ""
+ @echo "Following targets are available for the user:"
+ @echo ""
+- @echo " all: c.pbc"
++ @echo " build: cpp.pbc"
+ @echo " This is the default."
+ @echo "Testing:"
+ @echo " test: Run the test suite."
+@@ -89,7 +96,7 @@
+ @echo " help: Print this help message."
+ @echo ""
+
+-test: all
++test: build
+ $(PERL) t/harness
+
+ # this target has nothing to do
+@@ -100,17 +107,8 @@
+ src/gen_grammar.pir \
+ src/gen_actions.pir \
+ src/gen_builtins.pir \
+- $(PMC_DIR)/*.h \
+- $(PMC_DIR)/*.c \
+- $(PMC_DIR)/*.dump \
+- $(PMC_DIR)/*$(O) \
+- $(PMC_DIR)/*$(LOAD_EXT) \
+- $(PMC_DIR)/*.exp \
+- $(PMC_DIR)/*.ilk \
+- $(PMC_DIR)/*.manifest \
+- $(PMC_DIR)/*.pdb \
+- $(PMC_DIR)/*.lib \
+-
++ cpp@exe@ \
++ installable_cpp@exe@
+
+ clean:
+ $(RM_RF) $(CLEANUPS)
+@@ -120,4 +118,8 @@
+
+ distclean: realclean
+
+-
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/languages/c99/config/makefiles/root.in 2008-06-23 02:30:48.000000000 +0000
++++ src/parrot-0.8.2/languages/c99/config/makefiles/root.in 2008-12-25 13:44:21.147125000 +0000
+@@ -4,53 +4,75 @@
+ PARROT_ARGS =
+
+ ## configuration settings
++HLLNAME = c99
+ BUILD_DIR = @build_dir@
+ LOAD_EXT = @load_ext@
+ O = @o@
++BIN_DIR = @bin_dir@
++LIB_DIR = @lib_dir@
++DOC_DIR = @doc_dir@
++MANDIR = @mandir@
+
+ ## Setup some commands
+ LN_S = @lns@
+ PERL = @perl@
+ RM_RF = @rm_rf@
+ CP = @cp@
++MKPATH = @mkpath@
++POD2MAN = pod2man
++
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
+ PARROT = ../../parrot@exe@
++PBC_TO_EXE = ../../pbc_to_exe@exe@
+ CAT = $(PERL) -MExtUtils::Command -e cat
+ BUILD_DYNPMC = $(PERL) $(BUILD_DIR)/tools/build/dynpmc.pl
+ RECONFIGURE = $(PERL) $(BUILD_DIR)/tools/dev/reconfigure.pl
+-#CONDITIONED_LINE(darwin):
+-#CONDITIONED_LINE(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
+-#CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++#IF(darwin):
++#IF(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
++#IF(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
+
+ ## places to look for things
+ PARROT_DYNEXT = $(BUILD_DIR)/runtime/parrot/dynext
+-PGE_LIBRARY = $(BUILD_DIR)/runtime/parrot/library/PGE
++PARROT_LIB = $(BUILD_DIR)/runtime/parrot/library
++PGE_LIBRARY = $(PARROT_LIB)/PGE
++PCT = $(PARROT_LIB)/PCT.pbc
+ PERL6GRAMMAR = $(PGE_LIBRARY)/Perl6Grammar.pbc
+ NQP = $(BUILD_DIR)/compilers/nqp/nqp.pbc
+-PCT = $(BUILD_DIR)/runtime/parrot/library/PCT.pbc
+
+ PMC_DIR = src/pmc
++DOCS = MAINTAINER
++
++build: c99.pbc src/cpp/cpp.pbc
+
+-all: c99.pbc
++all: build Makefile installable
+
+ C_GROUP = $(PMC_DIR)/c_group$(LOAD_EXT)
+
+ SOURCES = c99.pir \
+ src/gen_grammar.pir \
+ src/gen_actions.pir \
+- src/gen_builtins.pir \
+-# $(C_GROUP)
++ src/gen_builtins.pir
+
+ BUILTINS_PIR = \
+ src/builtins/say.pir \
+
+-# PMCS = c
+-# PMC_SOURCES = $(PMC_DIR)/c.pmc
+-
+ # the default target
+ c99.pbc: $(PARROT) $(SOURCES)
+ $(PARROT) $(PARROT_ARGS) -o c99.pbc c99.pir
+ cd src/cpp; $(MAKE)
+
++c99@exe@: c99.pbc
++ $(PBC_TO_EXE) c99.pbc
++
++installable_c99@exe@ : c99.pbc
++ $(PBC_TO_EXE) c99.pbc --install
++
++src/cpp/cpp.pbc: src/cpp/cpp.pir
++ cd src/cpp && $(MAKE) installable_cpp@exe@
++
++installable_cpp@exe@ : src/cpp/cpp.pbc
++ $(CP) src/cpp/installable_cpp@exe@ installable_cpp@exe@
++
+ src/gen_grammar.pir: $(PERL6GRAMMAR) src/parser/grammar.pg
+ $(PARROT) $(PARROT_ARGS) $(PERL6GRAMMAR) \
+ --output=src/gen_grammar.pir \
+@@ -63,15 +85,9 @@
+ src/gen_builtins.pir: $(BUILTINS_PIR)
+ $(CAT) $(BUILTINS_PIR) >src/gen_builtins.pir
+
+-$(C_GROUP): $(PARROT) $(PMC_SOURCES)
+- cd $(PMC_DIR) && $(BUILD_DYNPMC) generate $(PMCS)
+- cd $(PMC_DIR) && $(BUILD_DYNPMC) compile $(PMCS)
+- cd $(PMC_DIR) && $(BUILD_DYNPMC) linklibs $(PMCS)
+- cd $(PMC_DIR) && $(BUILD_DYNPMC) copy --destination=$(PARROT_DYNEXT) $(PMCS)
+-
+ # regenerate the Makefile
+-Makefile: config/makefiles/root.in
+- cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=c
++Makefile: config/makefiles/root.in config/makefiles/cpp.in
++ cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=c99
+
+ # This is a listing of all targets, that are meant to be called by users
+ help:
+@@ -80,6 +96,9 @@
+ @echo ""
+ @echo " all: c.pbc"
+ @echo " This is the default."
++ @echo " installable: Create self-hosting bins and libs."
++ @echo " install: Install the installable targets and docs."
++ @echo ""
+ @echo "Testing:"
+ @echo " test: Run the test suite."
+ @echo " testclean: Clean up test results."
+@@ -96,6 +115,27 @@
+ test: all
+ $(PERL) t/harness
+
++# TODO: rename build_dir. basic run for missing libs
++test-installable : installable
++ ./installable_$(HLLNAME)@exe@ t/spi.t
++ ./installable_cpp@exe@ t/spi.t
++
++install : installable
++ $(CP) installable_$(HLLNAME)@exe@ $(DESTDIR)$(BIN_DIR)/parrot-$(HLLNAME)@exe@
++ $(CP) installable_cpp@exe@ $(DESTDIR)$(BIN_DIR)/parrot-cpp@exe@
++ $(CP) $(HLLNAME).pbc $(DESTDIR)$(LIB_DIR)/parrot/library/$(HLLNAME).pbc
++ $(CP) src/cpp/cpp.pbc $(DESTDIR)$(LIB_DIR)/parrot/library/cpp.pbc
++ $(POD2MAN) $(HLLNAME).pir > $(DESTDIR)$(MANDIR)/man1/parrot-$(HLLNAME).1
++ $(POD2MAN) src/cpp/cpp.pir > $(DESTDIR)$(MANDIR)/man1/parrot-cpp.1
++ $(MKPATH) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++ $(CP) $(DOCS) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++
++installable : installable_c99@exe@ installable_cpp@exe@ $(HLLNAME).pbc src/cpp/cpp.pbc
++ $(CP) installable_c99@exe@ $(BUILD_DIR)
++ $(CP) installable_cpp@exe@ $(BUILD_DIR)
++ $(CP) $(HLLNAME).pbc $(PARROT_LIB)/$(HLLNAME).pbc
++ $(CP) src/cpp/cpp.pbc $(PARROT_LIB)/cpp.pbc
++
+ # this target has nothing to do
+ testclean:
+
+@@ -104,21 +144,12 @@
+ src/gen_grammar.pir \
+ src/gen_actions.pir \
+ src/gen_builtins.pir \
+- $(PMC_DIR)/*.h \
+- $(PMC_DIR)/*.c \
+- $(PMC_DIR)/*.dump \
+- $(PMC_DIR)/*$(O) \
+- $(PMC_DIR)/*$(LOAD_EXT) \
+- $(PMC_DIR)/*.exp \
+- $(PMC_DIR)/*.ilk \
+- $(PMC_DIR)/*.manifest \
+- $(PMC_DIR)/*.pdb \
+- $(PMC_DIR)/*.lib \
+ src/cpp/cpp.pbc \
+ src/cpp/src/gen_actions.pir \
+ src/cpp/src/gen_grammar.pir \
+- src/cpp/src/gen_builtins.pir
+-
++ src/cpp/src/gen_builtins.pir \
++ c99@exe@ \
++ installable_*@exe@
+
+ clean:
+ $(RM_RF) $(CLEANUPS)
+@@ -128,4 +159,8 @@
+
+ distclean: realclean
+
+-
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/languages/cardinal/config/makefiles/root.in 2008-12-17 06:55:14.000000000 +0000
++++ src/parrot-0.8.2/languages/cardinal/config/makefiles/root.in 2008-12-25 13:44:21.194000000 +0000
+@@ -4,35 +4,49 @@
+ PARROT_ARGS =
+
+ ## configuration settings
++HLLNAME = cardinal
+ BUILD_DIR = @build_dir@
+ LOAD_EXT = @load_ext@
+ O = @o@
+ EXE = @exe@
++BIN_DIR = @bin_dir@
++LIB_DIR = @lib_dir@
++DOC_DIR = @doc_dir@
++MANDIR = @mandir@
+
+ ## Setup some commands
+ LN_S = @lns@
+ PERL = @perl@
+ RM_RF = @rm_rf@
+ CP = @cp@
++MKPATH = @mkpath@
++POD2MAN = pod2man
++
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
+ PARROT = ../../parrot@exe@
++PBC_TO_EXE = ../../pbc_to_exe@exe@
+ CAT = $(PERL) -MExtUtils::Command -e cat
+ BUILD_DYNPMC = $(PERL) $(BUILD_DIR)/tools/build/dynpmc.pl
+ RECONFIGURE = $(PERL) $(BUILD_DIR)/tools/dev/reconfigure.pl
+ PBC_TO_EXE = $(BUILD_DIR)/pbc_to_exe$(EXE)
+-#CONDITIONED_LINE(darwin):
+-#CONDITIONED_LINE(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
+-#CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++#IF(darwin):
++#IF(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
++#IF(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
+
+ ## places to look for things
+ PARROT_DYNEXT = $(BUILD_DIR)/runtime/parrot/dynext
+-PGE_LIBRARY = $(BUILD_DIR)/runtime/parrot/library/PGE
++PARROT_LIB = $(BUILD_DIR)/runtime/parrot/library
++PGE_LIBRARY = $(PARROT_LIB)/PGE
++PCT = $(PARROT_LIB)/PCT.pbc
+ PERL6GRAMMAR = $(PGE_LIBRARY)/Perl6Grammar.pbc
+ NQP = $(BUILD_DIR)/compilers/nqp/nqp.pbc
+ PCT = $(BUILD_DIR)/runtime/parrot/library/PCT.pbc
+
+ PMC_DIR = src/pmc
+
+-all: cardinal.pbc test.pir
++build: cardinal.pbc
++
++all: cardinal.pbc test.pir Makefile installable
+
+ CARDINAL_GROUP = $(PMC_DIR)/cardinal_group$(LOAD_EXT)
+
+@@ -40,8 +54,7 @@
+ src/parser/quote_expression.pir \
+ src/gen_grammar.pir \
+ src/gen_actions.pir \
+- src/gen_builtins.pir \
+-# $(CARDINAL_GROUP)
++ src/gen_builtins.pir
+
+ BUILTINS_PIR = \
+ src/builtins/guts.pir \
+@@ -71,6 +84,7 @@
+ src/builtins/eval.pir \
+ src/classes/Continuation.pir \
+
++DOCS = README
+ # PMCS = cardinal
+ # PMC_SOURCES = $(PMC_DIR)/cardinal.pmc
+
+@@ -101,15 +115,9 @@
+ src/gen_builtins.pir: $(BUILTINS_PIR)
+ $(CAT) $(BUILTINS_PIR) >src/gen_builtins.pir
+
+-$(CARDINAL_GROUP): $(PARROT) $(PMC_SOURCES)
+- cd $(PMC_DIR) && $(BUILD_DYNPMC) generate $(PMCS)
+- cd $(PMC_DIR) && $(BUILD_DYNPMC) compile $(PMCS)
+- cd $(PMC_DIR) && $(BUILD_DYNPMC) linklibs $(PMCS)
+- cd $(PMC_DIR) && $(BUILD_DYNPMC) copy --destination=$(PARROT_DYNEXT) $(PMCS)
+-
+ # regenerate the Makefile
+ Makefile: config/makefiles/root.in
+- cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=cardinal
++ cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=$(HLLNAME)
+
+ # This is a listing of all targets, that are meant to be called by users
+ help:
+@@ -118,8 +126,12 @@
+ @echo ""
+ @echo " all: cardinal.pbc"
+ @echo " This is the default."
++ @echo " installable: Create self-hosting bins and libs."
++ @echo " install: Install the installable targets and docs."
++ @echo ""
+ @echo "Testing:"
+ @echo " test: Run the test suite."
++ @echo " test-installable: Test self-hosting targets."
+ @echo " testclean: Clean up test results."
+ @echo ""
+ @echo "Cleaning:"
+@@ -140,6 +152,22 @@
+ hashtest: all
+ $(PERL) t/harness --tests-from-dir=hash
+
++# TODO: rename build_dir. basic run for missing libs
++test-installable : installable
++ ./installable_$(HLLNAME)@exe@ t/00-sanity.t
++
++installable : installable_$(HLLNAME)@exe@ $(HLLNAME).pbc
++ $(CP) installable_$(HLLNAME)@exe@ $(BUILD_DIR)
++ $(CP) $(HLLNAME).pbc $(PARROT_LIB)/$(HLLNAME).pbc
++
++install : installable
++ $(CP) installable_$(HLLNAME)@exe@ $(DESTDIR)$(BIN_DIR)/parrot-$(HLLNAME)@exe@
++ $(CP) $(HLLNAME).pbc $(DESTDIR)$(LIB_DIR)/parrot/library/$(HLLNAME).pbc
++ $(POD2MAN) $(HLLNAME).pir > $(DESTDIR)$(MANDIR)/man1/parrot-$(HLLNAME).1
++ $(MKPATH) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++ $(CP) $(DOCS) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++
++
+ # this target has nothing to do
+ testclean:
+
+@@ -151,6 +179,8 @@
+ cardinal$(O) \
+ cardinal$(EXE) \
+ installable_cardinal$(EXE) \
++ $(PARROT_LIB)/$(HLLNAME).pbc \
++ $(BUILD_DIR)/installable_cardinal@exe@ \
+ src/gen_grammar.pir \
+ src/gen_actions.pir \
+ src/gen_builtins.pir \
+@@ -174,4 +204,8 @@
+
+ distclean: realclean
+
+-
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/languages/chitchat/config/makefiles/root.in 2008-06-23 02:30:46.000000000 +0000
++++ src/parrot-0.8.2/languages/chitchat/config/makefiles/root.in 2008-12-25 13:44:21.225250000 +0000
+@@ -7,44 +7,50 @@
+ BUILD_DIR = @build_dir@
+ LOAD_EXT = @load_ext@
+ O = @o@
++BIN_DIR = @bin_dir@
++LIB_DIR = @lib_dir@
++DOC_DIR = @doc_dir@
++MANDIR = @mandir@
+
+ ## Setup some commands
+ LN_S = @lns@
+ PERL = @perl@
+ RM_RF = @rm_rf@
+ CP = @cp@
++MKPATH = @mkpath@
++POD2MAN = pod2man
++
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
+ PARROT = ../../parrot@exe@
++PBC_TO_EXE = ../../pbc_to_exe@exe@
+ CAT = $(PERL) -MExtUtils::Command -e cat
+ BUILD_DYNPMC = $(PERL) $(BUILD_DIR)/tools/build/dynpmc.pl
+ RECONFIGURE = $(PERL) $(BUILD_DIR)/tools/dev/reconfigure.pl
+-#CONDITIONED_LINE(darwin):
+-#CONDITIONED_LINE(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
+-#CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++#IF(darwin):
++#IF(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
++#IF(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
+
+ ## places to look for things
+ PARROT_DYNEXT = $(BUILD_DIR)/runtime/parrot/dynext
+-PGE_LIBRARY = $(BUILD_DIR)/runtime/parrot/library/PGE
++PARROT_LIB = $(BUILD_DIR)/runtime/parrot/library
++PGE_LIBRARY = $(PARROT_LIB)/PGE
++PCT = $(PARROT_LIB)/PCT.pbc
+ PERL6GRAMMAR = $(PGE_LIBRARY)/Perl6Grammar.pbc
+ NQP = $(BUILD_DIR)/compilers/nqp/nqp.pbc
+-PCT = $(BUILD_DIR)/runtime/parrot/library/PCT.pbc
+-
+-PMC_DIR = src/pmc
+-
+-all: chitchat.pbc
+
+-CHITCHAT_GROUP = $(PMC_DIR)/chitchat_group$(LOAD_EXT)
++DOCS = MAINTAINER
+
+ SOURCES = chitchat.pir \
+ src/gen_grammar.pir \
+ src/gen_actions.pir \
+- src/gen_builtins.pir \
+-# $(CHITCHAT_GROUP)
++ src/gen_builtins.pir
+
+ BUILTINS_PIR = \
+ src/builtins/say.pir \
+
+-# PMCS = chitchat
+-# PMC_SOURCES = $(PMC_DIR)/chitchat.pmc
++build: chitchat.pbc
++
++all: chitchat.pbc chitchat@exe@ Makefile installable
+
+ # the default target
+ chitchat.pbc: $(PARROT) $(SOURCES)
+@@ -62,15 +68,9 @@
+ src/gen_builtins.pir: $(BUILTINS_PIR)
+ $(CAT) $(BUILTINS_PIR) >src/gen_builtins.pir
+
+-$(CHITCHAT_GROUP): $(PARROT) $(PMC_SOURCES)
+- cd $(PMC_DIR) && $(BUILD_DYNPMC) generate $(PMCS)
+- cd $(PMC_DIR) && $(BUILD_DYNPMC) compile $(PMCS)
+- cd $(PMC_DIR) && $(BUILD_DYNPMC) linklibs $(PMCS)
+- cd $(PMC_DIR) && $(BUILD_DYNPMC) copy --destination=$(PARROT_DYNEXT) $(PMCS)
+-
+ # regenerate the Makefile
+ Makefile: config/makefiles/root.in
+- cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=chitchat
++ cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=$(HLLNAME)
+
+ # This is a listing of all targets, that are meant to be called by users
+ help:
+@@ -79,8 +79,12 @@
+ @echo ""
+ @echo " all: chitchat.pbc"
+ @echo " This is the default."
++ @echo " installable: Create self-hosting bins and libs."
++ @echo " install: Install the installable targets and docs."
++ @echo ""
+ @echo "Testing:"
+ @echo " test: Run the test suite."
++ @echo " test-installable: Test self-hosting targets."
+ @echo " testclean: Clean up test results."
+ @echo ""
+ @echo "Cleaning:"
+@@ -95,6 +99,27 @@
+ test: all
+ $(PERL) t/harness
+
++# TODO: rename build_dir. basic run for missing libs
++test-installable : installable
++ echo "2-1" | ./installable_$(HLLNAME)@exe@
++
++install : installable
++ $(CP) installable_$(HLLNAME)@exe@ $(DESTDIR)$(BIN_DIR)/parrot-$(HLLNAME)@exe@
++ $(CP) $(HLLNAME).pbc $(DESTDIR)$(LIB_DIR)/parrot/library/$(HLLNAME).pbc
++ $(POD2MAN) $(HLLNAME).pir > $(DESTDIR)$(MANDIR)/man1/parrot-$(HLLNAME).1
++ $(MKPATH) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++ $(CP) $(DOCS) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++
++$(HLLNAME)@exe@: $(HLLNAME).pbc
++ $(PBC_TO_EXE) $(HLLNAME).pbc
++
++installable : installable_$(HLLNAME)@exe@ $(HLLNAME).pbc
++ $(CP) installable_$(HLLNAME)@exe@ $(BUILD_DIR)
++ $(CP) $(HLLNAME).pbc $(PARROT_LIB)/$(HLLNAME).pbc
++
++installable_$(HLLNAME)@exe@ : $(HLLNAME).pbc
++ $(PBC_TO_EXE) $(HLLNAME).pbc --install
++
+ # this target has nothing to do
+ testclean:
+
+@@ -103,17 +128,9 @@
+ src/gen_grammar.pir \
+ src/gen_actions.pir \
+ src/gen_builtins.pir \
+- $(PMC_DIR)/*.h \
+- $(PMC_DIR)/*.c \
+- $(PMC_DIR)/*.dump \
+- $(PMC_DIR)/*$(O) \
+- $(PMC_DIR)/*$(LOAD_EXT) \
+- $(PMC_DIR)/*.exp \
+- $(PMC_DIR)/*.ilk \
+- $(PMC_DIR)/*.manifest \
+- $(PMC_DIR)/*.pdb \
+- $(PMC_DIR)/*.lib \
+-
++ $(PARROT_LIB)/$(HLLNAME).pbc \
++ $(HLLNAME)@exe@ \
++ installable_$(HLLNAME)@exe@ \
+
+ clean:
+ $(RM_RF) $(CLEANUPS)
+@@ -123,4 +140,8 @@
+
+ distclean: realclean
+
+-
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/languages/cola/config/makefiles/root.in 2008-06-23 02:30:48.000000000 +0000
++++ src/parrot-0.8.2/languages/cola/config/makefiles/root.in 2008-12-25 13:44:21.240875000 +0000
+@@ -2,25 +2,31 @@
+
+ # Makefile for languages/cola
+
++# configuration settings
++HLLNAME = cola
++BUILD_DIR = @build_dir@
++O = @o@
++EXE = @exe@
++BIN_DIR = @bin_dir@
++LIB_DIR = @lib_dir@
++DOC_DIR = @doc_dir@
++MANDIR = @mandir@
++
+ # Set up commands
+ PERL = @perl@
+ RM_F = @rm_f@
+ CHMOD = @chmod@
++CP = @cp@
++MKPATH = @mkpath@
+ CC = @cc@
+ DEBUG = @cc_debug@
+ YACC = @yacc@
+ LEX = @lex@
+ RECONFIGURE = $(PERL) @build_dir@/tools/dev/reconfigure.pl
+-#CONDITIONED_LINE(darwin):
+-#CONDITIONED_LINE(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
+-#CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
+-
+-# Set up extensions
+-O = @o@
+-EXE = @exe@
+-
+-# Set up directories
+-BUILD_DIR = @build_dir@
++POD2MAN = pod2man
++#IF(darwin):
++#IF(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
++#IF(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
+
+ # Libraries: Ordinarily, no special libraries are needed
+ # for cola, but one of the following settings might be helpful
+@@ -44,8 +50,9 @@
+ # LIBS = -lefence
+
+ HEADERS = cola.h parser.h
++DOCS = MAINTAINER README examples/*
+
+-default :
++all : colacc$(EXE)
+ $(MAKE) colacc$(EXE)
+ -$(CHMOD) 775 colacc$(EXE)
+
+@@ -53,22 +60,27 @@
+ @echo ""
+ @echo "Following targets are available for the user:"
+ @echo ""
+- @echo " default : build 'colacc'"
++ @echo " all : build 'colacc'"
+ @echo " This is the default."
++ @echo " installable: Create self-hosting bins and libs."
++ @echo " install: Install the installable targets and docs."
+ @echo ""
+- @echo " test: run the test suite"
+- @echo ""
+- @echo " clean: clean up temporary files"
++ @echo "Testing:"
++ @echo " test: Run the test suite"
++ @echo " test-installable: Test self-hosting targets."
++ @echo ""
++ @echo "Cleaning:"
++ @echo " clean: Clean up temporary files"
++ @echo " realclean: Clean up generated files"
++ @echo " superclean: Clean up generated files, also the flex/bison files"
+ @echo ""
+- @echo " realclean: clean up generated files"
++ @echo "Misc:"
++ @echo " help: Print this help message"
+ @echo ""
+- @echo " superclean: clean up generated files, also the flex/bison files"
+- @echo ""
+- @echo " help: print this help message"
+
+ # regenerate the Makefile
+ Makefile: config/makefiles/root.in
+- cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=cola
++ cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=$(HLLNAME)
+
+ nogen : gen$(O) semant$(O) sym$(O) type$(O)
+ $(CC) $(DEBUG) -c parser.c
+@@ -93,11 +105,11 @@
+ $(RM_F) parser.h
+ $(RM_F) lexer.c parser.c
+
+-publish :
+- $(PERL) publish.pl < MANIFEST
+-
+-dist :
+- $(PERL) distribution.pl < MANIFEST
++#publish :
++# $(PERL) publish.pl < MANIFEST
++#
++#dist :
++# $(PERL) distribution.pl < MANIFEST
+
+ parser.c : cola.y
+ $(YACC) -d -o parser.c cola.y
+@@ -127,5 +139,23 @@
+ $(CC) $(DEBUG) -o colacc$(EXE) parser$(O) lexer$(O) gen$(O) semant$(O) sym$(O) type$(O) $(LIBS)
+
+ test: default
+- cd .. && $(PERL) t/harness --languages=cola
++ cd .. && $(PERL) t/harness --languages=$(HLLNAME)
++
++# TODO: rename build_dir. basic run for missing libs
++test-installable : installable
++ ./colacc$(EXE) examples/fib.cola
++
++install : installable
++ $(CP) colacc$(EXE) $(DESTDIR)$(BIN_DIR)/parrot-colacc$(EXE)
++ ascii2man README > $(DESTDIR)$(MANDIR)/man1/parrot-colacc.1
++ $(MKPATH) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++ $(CP) $(DOCS) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
+
++installable : colacc$(EXE)
++ $(CP) colacc$(EXE) $(BUILD_DIR)/installable_colacc$(EXE)
++
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/languages/eclectus/config/makefiles/root.in 2008-06-23 02:30:48.000000000 +0000
++++ src/parrot-0.8.2/languages/eclectus/config/makefiles/root.in 2008-12-25 13:44:21.287750000 +0000
+@@ -4,22 +4,34 @@
+ # Makefile for languages/eclectus
+
+ # configuration settings
+-BUILD_DIR = @build_dir@
+-LOAD_EXT = @load_ext@
+-O = @o@
++HLLNAME = eclectus
++BUILD_DIR = @build_dir@
++LOAD_EXT = @load_ext@
++O = @o@
++BIN_DIR = @bin_dir@
++LIB_DIR = @lib_dir@
++DOC_DIR = @doc_dir@
++MANDIR = @mandir@
+
+ # Set up commands
+-PARROT = ../../parrot@exe@
+-PERL = @perl@
+-RM_F = @rm_f@
+-RECONFIGURE = $(PERL) @build_dir@/tools/dev/reconfigure.pl
+-BUILD_DYNPMC = $(PERL) @build_dir@/tools/build/dynpmc.pl
+-#CONDITIONED_LINE(darwin):
+-#CONDITIONED_LINE(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
+-#CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
++PARROT = ../../parrot@exe@
++PBC_TO_EXE = ../../pbc_to_exe@exe@
++PERL = @perl@
++RM_F = @rm_f@
++RENAME = @mv@
++CP = @cp@
++MKPATH = @mkpath@
++POD2MAN = pod2man
++RECONFIGURE = $(PERL) @build_dir@/tools/dev/reconfigure.pl
++BUILD_DYNPMC = $(PERL) @build_dir@/tools/build/dynpmc.pl
++#IF(darwin):
++#IF(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
++#IF(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
+
+ # Set up directories
+ PARROT_DYNEXT = @build_dir@/runtime/parrot/dynext
++PARROT_LIB = @build_dir@/runtime/parrot/library
+ PMC_DIR = src/pmc
+
+ ECLECTUS_GROUP = $(PMC_DIR)/eclectus_group@load_ext@
+@@ -39,45 +51,79 @@
+ $(PMC_DIR)/eclectuspair.pmc \
+ $(PMC_DIR)/eclectusstring.pmc \
+ $(PMC_DIR)/eclectusvector.pmc
+-
++DOCS = MAINTAINER README docs/eclectus.pod
+
+ # The default target
+ default: build
+
++all: build Makefile $(HLLNAME)@exe@ installable
++
+ help :
+ @echo ""
+ @echo "Following targets are available for the user:"
+ @echo ""
+- @echo " build: Builds the dynamic PMCSs needed by Eclectus."
++ @echo " all: Builds the dynamic PMCSs needed by Eclectus."
+ @echo " This is the default target."
++ @echo " installable: Create self-hosting bins and libs."
++ @echo " install: Install the installable targets and docs."
+ @echo ""
++ @echo "Testing:"
+ @echo " test: Run the test suite."
++ @echo " test-installable: Test self-hosting targets."
++ @echo " testclean: Clean up test results."
+ @echo ""
++ @echo "Cleaning:"
+ @echo " clean: Clean up temporary files."
+- @echo ""
+ @echo " realclean: Clean up generated files."
++ @echo " distclean: Removes also anything built, in theory"
+ @echo ""
++ @echo "Misc:"
+ @echo " help: Print this help message."
++ @echo ""
+
+ # regenerate the Makefile
+ Makefile: config/makefiles/root.in
+- cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=eclectus
++ cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=$(HLLNAME)
+
+ # Compilation:
+-build: $(ECLECTUS_GROUP) driver_nqp.pbc
++build: $(ECLECTUS_GROUP) $(HLLNAME).pbc
+
+-$(ECLECTUS_GROUP): $(PARROT) $(PMC_SOURCES)
++$(ECLECTUS_GROUP): $(PMC_SOURCES)
+ cd $(PMC_DIR) && $(BUILD_DYNPMC) generate $(PMCS)
+ cd $(PMC_DIR) && $(BUILD_DYNPMC) compile $(PMCS)
+ cd $(PMC_DIR) && $(BUILD_DYNPMC) linklibs $(PMCS)
+ cd $(PMC_DIR) && $(BUILD_DYNPMC) copy --destination=$(PARROT_DYNEXT) $(PMCS)
+
+-driver_nqp.pbc: src/builtins/all.pbc driver_nqp.pir
+- $(PARROT) -o driver_nqp.pbc driver_nqp.pir
++# TODO: merge those two and fix driver_nqp.pir
++$(HLLNAME).pbc: src/builtins/all.pbc driver_nqp.pir
++ $(PARROT) -o $(HLLNAME).pbc driver_nqp.pir
+
+ src/builtins/all.pbc: src/builtins/all.pir
+ $(PARROT) -o src/builtins/all.pbc src/builtins/all.pir
+
++# TODO: rename build_dir. basic run for missing libs
++test-installable : installable
++ ./installable_$(HLLNAME)@exe@ tests-driver.scm
++
++install : installable
++ $(CP) installable_$(HLLNAME)@exe@ $(DESTDIR)$(BIN_DIR)/parrot-$(HLLNAME)@exe@
++ $(CP) $(HLLNAME).pbc $(DESTDIR)$(LIB_DIR)/parrot/library/$(HLLNAME).pbc
++ cd $(PMC_DIR) && $(BUILD_DYNPMC) copy "--destination=$(DESTDIR)$(LIB_DIR)/parrot/dynext" $(PMCS)
++ $(POD2MAN) docs/$(HLLNAME).pod > $(DESTDIR)$(MANDIR)/man1/parrot-$(HLLNAME).1
++ $(MKPATH) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++ $(CP) $(DOCS) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++
++$(HLLNAME)@exe@: $(HLLNAME).pbc
++ $(PBC_TO_EXE) $(HLLNAME).pbc
++
++installable : installable_$(HLLNAME)@exe@ $(ECLECTUS_GROUP) $(HLLNAME).pbc
++ $(CP) installable_$(HLLNAME)@exe@ $(BUILD_DIR)
++ $(CP) $(HLLNAME).pbc $(PARROT_LIB)/$(HLLNAME).pbc
++
++installable_$(HLLNAME)@exe@ : $(HLLNAME).pbc
++ $(PBC_TO_EXE) $(HLLNAME).pbc --install
++
++
+ # cleaning up
+
+ clean: dynext-clean test-clean
+@@ -97,8 +143,11 @@
+ $(PMC_DIR)/*.ilk \
+ $(PMC_DIR)/*.manifest \
+ $(PMC_DIR)/*.pdb \
+- $(PMC_DIR)/*.lib
+-
++ $(PMC_DIR)/*.lib \
++ installable_$(HLLNAME)@exe@ \
++ $(HLLNAME)@exe@ \
++ $(HLLNAME).pbc \
++ $(PARROT_LIB)/$(HLLNAME).pbc
+
+ realclean: clean
+ $(RM_F) Makefile
+@@ -110,3 +159,11 @@
+ test-clean:
+ $(RM_F) t/*.nqp
+ $(RM_F) t/*.pir
++
++distclean: realclean
++
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/languages/eclectus/driver_nqp.pir 2008-10-10 19:13:21.000000000 +0000
++++ src/parrot-0.8.2/languages/eclectus/driver_nqp.pir 2008-12-25 13:44:21.287750000 +0000
+@@ -39,7 +39,7 @@
+ # say cmd
+ ret = spawnw cmd
+
+- # load the generated PIR
++ # load the generated PIR. TODO: make that installable
+ $S1 = concat "languages/eclectus/", pir_fn
+ load_bytecode $S1
+
+--- origsrc/parrot-0.8.2/languages/ecmascript/config/makefiles/root.in 2008-06-23 02:30:46.000000000 +0000
++++ src/parrot-0.8.2/languages/ecmascript/config/makefiles/root.in 2008-12-25 13:44:21.334625000 +0000
+@@ -4,9 +4,14 @@
+ PARROT_ARGS =
+
+ ## configuration settings
++HLLNAME = eclectus
+ BUILD_DIR = @build_dir@
+ LOAD_EXT = @load_ext@
+ O = @o@
++BIN_DIR = @bin_dir@
++LIB_DIR = @lib_dir@
++DOC_DIR = @doc_dir@
++MANDIR = @mandir@
+
+ # Setup some commands
+ LN_S = @lns@
+@@ -14,33 +19,42 @@
+ RM_F = @rm_f@
+ RM_RF = @rm_rf@
+ CP = @cp@
++RENAME = @mv@
++MKPATH = @mkpath@
++POD2MAN = pod2man
++
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
+ PARROT = ../../parrot@exe@
++PBC_TO_EXE = ../../pbc_to_exe@exe@
+ CAT = $(PERL) -MExtUtils::Command -e cat
+ BUILD_DYNPMC = $(PERL) $(BUILD_DIR)/tools/build/dynpmc.pl
+ RECONFIGURE = $(PERL) $(BUILD_DIR)/tools/dev/reconfigure.pl
+-#CONDITIONED_LINE(darwin):
+-#CONDITIONED_LINE(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
+-#CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++#IF(darwin):
++#IF(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
++#IF(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
+
+ ## places to look for things
+ PARROT_DYNEXT = $(BUILD_DIR)/runtime/parrot/dynext
+-PGE_LIBRARY = $(BUILD_DIR)/runtime/parrot/library/PGE
++PARROT_LIB = $(BUILD_DIR)/runtime/parrot/library
++PGE_LIBRARY = $(PARROT_LIB)/PGE
+ PERL6GRAMMAR = $(PGE_LIBRARY)/Perl6Grammar.pbc
+ NQP = $(BUILD_DIR)/compilers/nqp/nqp.pbc
+-PCT = $(BUILD_DIR)/runtime/parrot/library/PCT.pbc
+-PBC_TO_EXE = $(BUILD_DIR)/pbc_to_exe@exe@
++PCT = $(PARROT_LIB)/PCT.pbc
+
+ PMCDIR = src/pmc
+
+
+ # the default target
+-all: js.pbc #$(PMCDIR)/js_group$(LOAD_EXT)
++build: $(HLLNAME).pbc
++
++all: js.pbc $(HLLNAME)@exe@ Makefile installable
+
++DOCS = MAINTAINER
+ SOURCES = \
+ js.pir \
+ src/gen_grammar.pir \
+ src/gen_actions.pir \
+- src/builtin/builtins.pir \
++ src/builtin/builtins.pir
+
+ #PMCS = \
+ # jsobject \
+@@ -85,7 +99,7 @@
+ $(PBC_TO_EXE) js.pbc
+
+ # the default target
+-js.pbc: $(PARROT) $(SOURCES)
++js.pbc: $(SOURCES)
+ $(PARROT) $(PARROT_ARGS) -o js.pbc js.pir
+
+ src/gen_grammar.pir: $(PERL6GRAMMAR) src/parser/grammar.pg
+@@ -104,7 +118,7 @@
+
+ # regenerate the Makefile
+ Makefile: config/makefiles/root.in
+- cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=ecmascript
++ cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=$(HLLNAME)
+
+ # This is a listing of all targets, that are meant to be called by users
+ help:
+@@ -113,8 +127,12 @@
+ @echo ""
+ @echo " all: js.pbc"
+ @echo " This is the default."
++ @echo " installable: Create self-hosting bins and libs."
++ @echo " install: Install the installable targets and docs."
++ @echo ""
+ @echo "Testing:"
+ @echo " test: Run the test suite."
++ @echo " test-installable: Test self-hosting targets."
+ @echo " testclean: Clean up test results."
+ @echo ""
+ @echo "Cleaning:"
+@@ -129,12 +147,42 @@
+ test: all
+ $(PERL) t/harness t
+
++# TODO: rename build_dir. basic run for missing libs
++test-installable : installable
++ echo "2-1" | ./installable_$(HLLNAME)@exe@
++
++install : installable $(HLLNAME).pbc
++ $(CP) installable_$(HLLNAME)@exe@ $(DESTDIR)$(BIN_DIR)/parrot-$(HLLNAME)@exe@
++ $(CP) $(HLLNAME).pbc $(DESTDIR)$(LIB_DIR)/parrot/library/$(HLLNAME).pbc
++ $(POD2MAN) $(HLLNAME).pir > $(DESTDIR)$(MANDIR)/man1/parrot-$(HLLNAME).1
++ $(MKPATH) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++ $(CP) $(DOCS) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++
++$(HLLNAME).pbc : js.pbc
++ $(CP) js.pbc $(HLLNAME).pbc
++
++$(HLLNAME)@exe@: $(HLLNAME).pbc
++ $(PBC_TO_EXE) $(HLLNAME).pbc
++
++$(PARROT_LIB)/$(HLLNAME).pbc: $(HLLNAME).pbc
++ $(CP) $(HLLNAME).pbc $(PARROT_LIB)/$(HLLNAME).pbc
++
++installable : installable_$(HLLNAME)@exe@ $(HLLNAME).pbc $(PARROT_LIB)/$(HLLNAME).pbc
++ $(CP) installable_$(HLLNAME)@exe@ $(BUILD_DIR)
++
++installable_$(HLLNAME)@exe@ : $(HLLNAME).pbc
++ $(PBC_TO_EXE) $(HLLNAME).pbc --install
++
+ testclean:
+ $(RM_F) "t/*.js" "t/*.out"
+
+ CLEANUPS = \
+- js.pbc \
+ js@exe@ \
++ js.pbc \
++ installable_$(HLLNAME)@exe@ \
++ $(HLLNAME).pbc \
++ $(HLLNAME)@exe@ \
++ $(PARROT_LIB)/$(HLLNAME).pbc \
+ js.c \
+ src/gen_grammar.pir \
+ src/gen_actions.pir \
+@@ -159,3 +207,9 @@
+ $(RM_RF) Makefile
+
+ distclean: realclean
++
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/languages/forth/config/makefiles/root.in 2008-06-23 02:30:45.000000000 +0000
++++ src/parrot-0.8.2/languages/forth/config/makefiles/root.in 2008-12-25 13:44:21.365875000 +0000
+@@ -1,23 +1,36 @@
+ # $Id: /mirror/trunk/languages/forth/config/makefiles/root.in 28688 2008-06-23T00:33:41.905243Z coke $
+
+-PARROT = ../../parrot@exe@
+-PERL = @perl@
+-RM_RF = @rm_rf@
++HLLNAME = forth
++PERL = @perl@
++RM_RF = @rm_rf@
++CP = @cp@
++MKPATH = @mkpath@
++POD2MAN = pod2man
++
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
++PARROT = ../../parrot@exe@
++PBC_TO_EXE = ../../pbc_to_exe@exe@
++PBC_MERGE = ../../pbc_merge@exe@
+ RECONFIGURE = $(PERL) @build_dir@/tools/dev/reconfigure.pl
+-#CONDITIONED_LINE(darwin):
+-#CONDITIONED_LINE(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
+-#CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++#IF(darwin):
++#IF(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
++#IF(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++
++BIN_DIR = @bin_dir@
++LIB_DIR = @lib_dir@
++DOC_DIR = @doc_dir@
++MANDIR = @mandir@
++PARROT_LIB = $(BUILD_DIR)/runtime/parrot/library
++
++PBCS = tokenstream.pbc \
++ variablestack.pbc \
++ virtualstack.pbc
++DEPENDENCIES = forth.pbc $(PBCS)
++DOCS = MAINTAINER
+
+-BUILD_DIR = @build_dir@
++build: $(DEPENDENCIES)
+
+-DEPENDENCIES = \
+- forth.pbc \
+- tokenstream.pbc \
+- variablestack.pbc \
+- virtualstack.pbc
+-
+-
+-all: $(DEPENDENCIES)
++all: $(DEPENDENCIES) Makefile forth@exe@ installable
+
+ # regenerate the Makefile
+ Makefile: config/makefiles/root.in
+@@ -47,3 +60,76 @@
+
+ test: all
+ $(PERL) t/harness
++
++# This is a listing of all targets, that are meant to be called by users
++help:
++ @echo ""
++ @echo "Following targets are available for the user:"
++ @echo ""
++ @echo " all: force.pbc"
++ @echo " This is the default."
++ @echo " installable: Create self-hosting bins and libs."
++ @echo " install: Install the installable targets and docs."
++ @echo ""
++ @echo "Testing:"
++ @echo " test: Run the test suite."
++ @echo " test-installable: Test self-hosting targets."
++ @echo " testclean: Clean up test results."
++ @echo ""
++ @echo "Cleaning:"
++ @echo " clean: Basic cleaning up."
++ @echo " realclean: Removes also files generated by 'Configure.pl'"
++ @echo " distclean: Removes also anything built, in theory"
++ @echo ""
++ @echo "Misc:"
++ @echo " help: Print this help message."
++ @echo ""
++
++# TODO: rename build_dir. basic run for missing libs
++test-installable : installable
++ echo "2-1" | ./installable_$(HLLNAME)@exe@
++
++install : installable
++ $(CP) installable_$(HLLNAME)@exe@ $(DESTDIR)$(BIN_DIR)/parrot-$(HLLNAME)@exe@
++ $(CP) $(HLLNAME).pbc $(DESTDIR)$(LIB_DIR)/parrot/library/$(HLLNAME).pbc
++ -$(MKPATH) $(DESTDIR)$(LIB_DIR)/parrot/library/forth
++ $(CP) tokenstream.pbc $(DESTDIR)$(LIB_DIR)/parrot/library/forth/tokenstream.pbc
++ $(CP) variablestack.pbc $(DESTDIR)$(LIB_DIR)/parrot/library/forth/variablestack.pbc
++ $(CP) virtualstack.pbc $(DESTDIR)$(LIB_DIR)/parrot/library/forth/virtualstack.pbc
++ -$(MKPATH) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++ $(CP) $(DOCS) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++
++$(HLLNAME)@exe@: $(HLLNAME).pbc
++ $(PBC_TO_EXE) $(HLLNAME).pbc
++
++installable : installable_$(HLLNAME)@exe@ $(HLLNAME).pbc
++ $(CP) installable_$(HLLNAME)@exe@ $(BUILD_DIR)
++ $(CP) $(HLLNAME).pbc $(PARROT_LIB)/$(HLLNAME).pbc
++ -$(MKPATH) $(PARROT_LIB)/forth
++ $(CP) tokenstream.pbc $(PARROT_LIB)/forth/tokenstream.pbc
++ $(CP) variablestack.pbc $(PARROT_LIB)/forth/variablestack.pbc
++ $(CP) virtualstack.pbc $(PARROT_LIB)/forth/virtualstack.pbc
++
++installable_$(HLLNAME)@exe@ : $(HLLNAME).pbc
++ $(PBC_TO_EXE) $(HLLNAME).pbc --install
++
++testclean:
++
++CLEANUPS = \
++ installable_$(HLLNAME)@exe@ \
++ *.pbc \
++ $(HLLNAME)@exe@ \
++
++clean:
++ $(RM_RF) $(CLEANUPS)
++
++realclean: clean
++ $(RM_RF) Makefile
++
++distclean: realclean
++
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/languages/forth/forth.pir 2008-12-17 06:55:12.000000000 +0000
++++ src/parrot-0.8.2/languages/forth/forth.pir 2008-12-25 13:44:21.381500000 +0000
+@@ -5,10 +5,27 @@
+ .include 'languages/forth/words.pir'
+
+ .sub ' init' :load
++
++ # determine location of libs from the Parrot config
++ load_bytecode 'config.pir'
++ .local pmc cfg
++ cfg = _config()
++ .local int installed
++ .local string lib_dir, pbc_fn
++ lib_dir = 'forth/'
++ installed = cfg['installed']
++ if installed goto inst
++
++ lib_dir = cfg['build_dir']
++ lib_dir .= '/languages/forth/'
++inst:
+ # load the libraries we depend on
+- load_bytecode 'languages/forth/tokenstream.pbc'
+- load_bytecode 'languages/forth/variablestack.pbc'
+- load_bytecode 'languages/forth/virtualstack.pbc'
++ pbc_fn = concat lib_dir, 'tokenstream.pbc'
++ load_bytecode pbc_fn
++ pbc_fn = concat lib_dir, 'variablestack.pbc'
++ load_bytecode pbc_fn
++ pbc_fn = concat lib_dir, 'virtualstack.pbc'
++ load_bytecode pbc_fn
+
+ # initialize the rstack
+ .local pmc stack
+--- origsrc/parrot-0.8.2/languages/forth/test.pir 2008-12-17 06:55:12.000000000 +0000
++++ src/parrot-0.8.2/languages/forth/test.pir 2008-12-25 13:44:21.381500000 +0000
+@@ -10,11 +10,23 @@
+
+ .sub main :main
+ .param pmc args
+- .local int argc
++ .local int argc, installed
++ .local string lib_dir, pbc_fn
+ $P0 = shift args
+ argc = elements args
+
+- load_bytecode 'languages/forth/forth.pir'
++ # determine location of libs from the Parrot config
++ .local pmc cfg
++ cfg = _config()
++ lib_dir = 'forth/'
++ installed = cfg['installed']
++ if installed goto inst
++
++ lib_dir = cfg['build_dir']
++ lib_dir .= 'languages/forth/'
++inst:
++ pbc_fn = concat lib_dir, 'forth'
++ load_bytecode pbc_fn
+
+ .local pmc iter
+ iter = new 'Iterator', args
+--- origsrc/parrot-0.8.2/languages/hq9plus/config/makefiles/root.in 2008-06-23 02:30:46.000000000 +0000
++++ src/parrot-0.8.2/languages/hq9plus/config/makefiles/root.in 2008-12-25 13:44:21.397125000 +0000
+@@ -4,25 +4,39 @@
+ PARROT_ARGS =
+
+ ## configuration settings
++HLLNAME = hq9plus
+ BUILD_DIR = @build_dir@
++BIN_DIR = @bin_dir@
++LIB_DIR = @lib_dir@
++DOC_DIR = @doc_dir@
++MANDIR = @mandir@
+
+ ## Setup some commands
+ PERL = @perl@
+ RM_RF = @rm_rf@
++CP = @cp@
++MKPATH = @mkpath@
++POD2MAN = pod2man
++
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
+ PARROT = ../../parrot@exe@
++PBC_TO_EXE = ../../pbc_to_exe@exe@
+ CAT = $(PERL) -MExtUtils::Command -e cat
+ RECONFIGURE = $(PERL) $(BUILD_DIR)/tools/dev/reconfigure.pl
+-#CONDITIONED_LINE(darwin):
+-#CONDITIONED_LINE(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
+-#CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++#IF(darwin):
++#IF(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
++#IF(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
+
+ ## places to look for things
+-PGE_LIBRARY = $(BUILD_DIR)/runtime/parrot/library/PGE
++PARROT_LIB = $(BUILD_DIR)/runtime/parrot/library
++PGE_LIBRARY = $(PARROT_LIB)/PGE
+ PERL6GRAMMAR = $(PGE_LIBRARY)/Perl6Grammar.pbc
+ NQP = $(BUILD_DIR)/compilers/nqp/nqp.pbc
+-PCT = $(BUILD_DIR)/runtime/parrot/library/PCT.pbc
++PCT = $(PARROT_LIB)/PCT.pbc
++
++build: hq9plus.pbc
+
+-all: hq9plus.pbc
++all: hq9plus.pbc Makefile hq9plus@exe@ installable
+
+ SOURCES = hq9plus.pir \
+ src/gen_grammar.pir \
+@@ -35,8 +49,10 @@
+ src/builtins/nintynine_bottles_of_beer.pir \
+ src/builtins/plus.pir \
+
++DOCS = MAINTAINER README
++
+ # the default target
+-hq9plus.pbc: $(PARROT) $(SOURCES)
++hq9plus.pbc: $(SOURCES)
+ $(PARROT) $(PARROT_ARGS) -o hq9plus.pbc hq9plus.pir
+
+ src/gen_grammar.pir: $(PERL6GRAMMAR) src/parser/grammar.pg
+@@ -53,7 +69,7 @@
+
+ # regenerate the Makefile
+ Makefile: config/makefiles/root.in
+- cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=hq9plus
++ cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=$(HLLNAME)
+
+ # This is a listing of all targets, that are meant to be called by users
+ help:
+@@ -62,8 +78,12 @@
+ @echo ""
+ @echo " all: hq9plus.pbc"
+ @echo " This is the default."
++ @echo " installable: Create self-hosting bins and libs."
++ @echo " install: Install the installable targets and docs."
++ @echo ""
+ @echo "Testing:"
+ @echo " test: Run the test suite."
++ @echo " test-installable: Test self-hosting targets."
+ @echo " testclean: Clean up test results."
+ @echo ""
+ @echo "Cleaning:"
+@@ -78,6 +98,27 @@
+ test: all
+ $(PERL) t/harness
+
++# TODO: rename build_dir. basic run for missing libs
++test-installable : installable
++ ./installable_$(HLLNAME)@exe@
++
++install : installable
++ $(CP) installable_$(HLLNAME)@exe@ $(DESTDIR)$(BIN_DIR)/parrot-$(HLLNAME)@exe@
++ $(CP) $(HLLNAME).pbc $(DESTDIR)$(LIB_DIR)/parrot/library/$(HLLNAME).pbc
++ $(POD2MAN) $(HLLNAME).pir > $(DESTDIR)$(MANDIR)/man1/parrot-$(HLLNAME).1
++ $(MKPATH) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++ $(CP) $(DOCS) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++
++$(HLLNAME)@exe@: $(HLLNAME).pbc
++ $(PBC_TO_EXE) $(HLLNAME).pbc
++
++installable : installable_$(HLLNAME)@exe@ $(HLLNAME).pbc
++ $(CP) installable_$(HLLNAME)@exe@ $(BUILD_DIR)
++ $(CP) $(HLLNAME).pbc $(PARROT_LIB)/$(HLLNAME).pbc
++
++installable_$(HLLNAME)@exe@ : $(HLLNAME).pbc
++ $(PBC_TO_EXE) $(HLLNAME).pbc --install
++
+ # this target has nothing to do
+ testclean:
+
+@@ -87,8 +128,11 @@
+ src/gen_actions.pir \
+ src/gen_builtins.pir \
+ t/*.HQ9plus \
+- t/*.out
+-
++ t/*.out \
++ installable_$(HLLNAME)@exe@ \
++ $(HLLNAME)@exe@ \
++ $(HLLNAME).pbc \
++ $(PARROT_LIB)/$(HLLNAME).pbc
+
+ clean:
+ $(RM_RF) $(CLEANUPS)
+@@ -96,4 +140,10 @@
+ realclean: clean
+ $(RM_RF) Makefile
+
+-distclean: realclean
++distclean: clean realclean
++
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/languages/jako/config/makefiles/root.in 2008-06-23 02:30:46.000000000 +0000
++++ src/parrot-0.8.2/languages/jako/config/makefiles/root.in 2008-12-25 13:44:21.444000000 +0000
+@@ -4,18 +4,33 @@
+ # $Id: /mirror/trunk/languages/jako/config/makefiles/root.in 28688 2008-06-23T00:33:41.905243Z coke $
+ #
+
++HLLNAME = jako
++BUILD_DIR = @build_dir@
++LOAD_EXT = @load_ext@
++O = @o@
++BIN_DIR = @bin_dir@
++PERLLIB_DIR = $(shell $(PERL) -V::sitelib:)
++DOC_DIR = @doc_dir@
++MANDIR = @mandir@
++
+ PERL = @perl@
+ RM_F = @rm_f@
++CP = @cp@
++MKPATH = @mkpath@
++POD2MAN = pod2man
+ JAKOC = $(PERL) -I lib jakoc
++
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
+ INTERP = ../../@test_prog@
+-BUILD_DIR = @build_dir@
++PBC_TO_EXE = ../../pbc_to_exe@exe@
+ RECONFIGURE = $(PERL) @build_dir@/tools/dev/reconfigure.pl
+-#CONDITIONED_LINE(darwin):
+-#CONDITIONED_LINE(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
+-#CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++#IF(darwin):
++#IF(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
++#IF(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
+
+-.SUFFIXES: .jako .pir
++DOCS = README MAINTAINER
+
++.SUFFIXES: .jako .pir
+
+ # default target
+ all: \
+@@ -41,16 +56,23 @@
+ @echo ""
+ @echo " all : Compile the example scripts"
+ @echo " This is the default."
++ @echo " installable: Create self-hosting bins and libs."
++ @echo " install: Install the installable targets and docs."
++ @echo " over: Clean and build again"
++ @echo ""
++ @echo "Testing:"
++ @echo " test: Run the test suite."
++ @echo " test-installable: Test self-hosting targets."
++ @echo " testclean: Clean up test results."
++ @echo ""
++ @echo "Cleaning:"
++ @echo " clean: Basic cleaning up."
++ @echo " realclean: Removes also files generated by 'Configure.pl'"
++ @echo " distclean: Removes also anything built, in theory"
+ @echo ""
+- @echo " over: clean and build again"
++ @echo "Misc:"
++ @echo " help: Print this help message."
+ @echo ""
+- @echo " test: run the test suite"
+- @echo ""
+- @echo " clean: clean up temporary files"
+- @echo ""
+- @echo " realclean: clean up generated files"
+- @echo ""
+- @echo " help: print this help message"
+
+
+ # regenerate the Makefile
+@@ -109,7 +131,27 @@
+ $(INTERP) examples/queens.pir
+ $(INTERP) examples/sub.pir
+
++# TODO: rename build_dir. basic run for missing libs
++test-installable : installable
++ echo "2-1" | ./installable_$(HLLNAME)@exe@
++
++install : installable
++ $(CP) jako $(DESTDIR)$(BIN_DIR)/parrot-jako
++ $(CP) jakoc $(DESTDIR)$(BIN_DIR)/parrot-jakoc
++ $(CP) -R lib/Jako $(DESTDIR)$(PERLLIB_DIR)
++ $(POD2MAN) docs/jako.pod > $(DESTDIR)$(MANDIR)/man1/parrot-$(HLLNAME).1
++ $(MKPATH) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++ $(MKPATH) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)/examples
++ $(CP) $(DOCS) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++ $(CP) *.jako $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++ $(CP) examples/*.jako $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)/examples
++
++installable : jako jakoc
++
++testclean:
+
+ #
+-# End of file.
+-#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/languages/json/config/makefiles/root.in 2008-07-02 08:59:01.000000000 +0000
++++ src/parrot-0.8.2/languages/json/config/makefiles/root.in 2008-12-25 13:44:21.506500000 +0000
+@@ -4,48 +4,59 @@
+ PARROT_ARGS =
+
+ ## configuration settings
++HLLNAME = json
+ BUILD_DIR = @build_dir@
+ LOAD_EXT = @load_ext@
+ O = @o@
++BIN_DIR = @bin_dir@
++LIB_DIR = @lib_dir@
++DOC_DIR = @doc_dir@
++MANDIR = @mandir@
+
+ ## Setup some commands
+ LN_S = @lns@
+ PERL = @perl@
+ RM_RF = @rm_rf@
+ CP = @cp@
++MKPATH = @mkpath@
++POD2MAN = pod2man
++
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
+ PARROT = ../../parrot@exe@
++PBC_TO_EXE = ../../pbc_to_exe@exe@
+ CAT = $(PERL) -MExtUtils::Command -e cat
+ BUILD_DYNPMC = $(PERL) $(BUILD_DIR)/tools/build/dynpmc.pl
+ RECONFIGURE = $(PERL) $(BUILD_DIR)/tools/dev/reconfigure.pl
+-#CONDITIONED_LINE(darwin):
+-#CONDITIONED_LINE(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
+-#CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++#IF(darwin):
++#IF(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
++#IF(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
+
+ ## places to look for things
+ PARROT_DYNEXT = $(BUILD_DIR)/runtime/parrot/dynext
+-PGE_LIBRARY = $(BUILD_DIR)/runtime/parrot/library/PGE
++PARROT_LIB = $(BUILD_DIR)/runtime/parrot/library
++PGE_LIBRARY = $(PARROT_LIB)/PGE
+ PERL6GRAMMAR = $(PGE_LIBRARY)/Perl6Grammar.pbc
+ NQP = $(BUILD_DIR)/compilers/nqp/nqp.pbc
+-PCT = $(BUILD_DIR)/runtime/parrot/library/PCT.pbc
++PCT = $(PARROT_LIB)/PCT.pbc
+
+ PMC_DIR = src/pmc
+
+-all: json.pbc
++build: json.pbc
++
++all: json.pbc Makefile json@exe@ installable
+
+ JSON_GROUP = $(PMC_DIR)/json_group$(LOAD_EXT)
+
+ SOURCES = json.pir \
+ src/gen_grammar.pir \
+ src/gen_actions.pir \
+- src/gen_builtins.pir \
+-# $(JSON_GROUP)
++ src/gen_builtins.pir
++
++DOCS = MAINTAINER
+
+ BUILTINS_PIR = \
+ src/builtins/say.pir \
+
+-# PMCS = json
+-# PMC_SOURCES = $(PMC_DIR)/json.pmc
+-
+ # the default target
+ json.pbc: $(PARROT) $(SOURCES)
+ $(PARROT) $(PARROT_ARGS) -o json.pbc json.pir
+@@ -63,15 +74,9 @@
+ src/gen_builtins.pir: $(BUILTINS_PIR)
+ $(CAT) $(BUILTINS_PIR) >src/gen_builtins.pir
+
+-$(JSON_GROUP): $(PARROT) $(PMC_SOURCES)
+- cd $(PMC_DIR) && $(BUILD_DYNPMC) generate $(PMCS)
+- cd $(PMC_DIR) && $(BUILD_DYNPMC) compile $(PMCS)
+- cd $(PMC_DIR) && $(BUILD_DYNPMC) linklibs $(PMCS)
+- cd $(PMC_DIR) && $(BUILD_DYNPMC) copy --destination=$(PARROT_DYNEXT) $(PMCS)
+-
+ # regenerate the Makefile
+ Makefile: config/makefiles/root.in
+- cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=json
++ cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=$(HLLNAME)
+
+ # This is a listing of all targets, that are meant to be called by users
+ help:
+@@ -80,8 +85,12 @@
+ @echo ""
+ @echo " all: json.pbc"
+ @echo " This is the default."
++ @echo " installable: Create self-hosting bins and libs."
++ @echo " install: Install the installable targets and docs."
++ @echo ""
+ @echo "Testing:"
+ @echo " test: Run the test suite."
++ @echo " test-installable: Test self-hosting targets."
+ @echo " testclean: Clean up test results."
+ @echo ""
+ @echo "Cleaning:"
+@@ -96,6 +105,27 @@
+ test: all
+ $(PERL) t/harness
+
++# TODO: rename build_dir. basic run for missing libs
++test-installable : installable
++ ./installable_$(HLLNAME)@exe@
++
++install : installable
++ $(CP) installable_$(HLLNAME)@exe@ $(DESTDIR)$(BIN_DIR)/parrot-$(HLLNAME)@exe@
++ $(CP) $(HLLNAME).pbc $(DESTDIR)$(LIB_DIR)/parrot/library/$(HLLNAME).pbc
++ $(POD2MAN) $(HLLNAME).pir > $(DESTDIR)$(MANDIR)/man1/parrot-$(HLLNAME).1
++ $(MKPATH) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++ $(CP) $(DOCS) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++
++$(HLLNAME)@exe@: $(HLLNAME).pbc
++ $(PBC_TO_EXE) $(HLLNAME).pbc
++
++installable : installable_$(HLLNAME)@exe@ $(HLLNAME).pbc
++ $(CP) installable_$(HLLNAME)@exe@ $(BUILD_DIR)
++ $(CP) $(HLLNAME).pbc $(PARROT_LIB)/$(HLLNAME).pbc
++
++installable_$(HLLNAME)@exe@ : $(HLLNAME).pbc
++ $(PBC_TO_EXE) $(HLLNAME).pbc --install
++
+ # this target has nothing to do
+ testclean:
+
+@@ -104,17 +134,10 @@
+ src/gen_grammar.pir \
+ src/gen_actions.pir \
+ src/gen_builtins.pir \
+- $(PMC_DIR)/*.h \
+- $(PMC_DIR)/*.c \
+- $(PMC_DIR)/*.dump \
+- $(PMC_DIR)/*$(O) \
+- $(PMC_DIR)/*$(LOAD_EXT) \
+- $(PMC_DIR)/*.exp \
+- $(PMC_DIR)/*.ilk \
+- $(PMC_DIR)/*.manifest \
+- $(PMC_DIR)/*.pdb \
+- $(PMC_DIR)/*.lib \
+-
++ installable_$(HLLNAME)@exe@ \
++ $(HLLNAME)@exe@ \
++ $(HLLNAME).pbc \
++ $(PARROT_LIB)/$(HLLNAME).pbc
+
+ clean: testclean
+ $(RM_RF) $(CLEANUPS)
+@@ -123,3 +146,9 @@
+ $(RM_RF) Makefile
+
+ distclean: realclean
++
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/languages/lazy-k/config/makefiles/root.in 2008-06-23 02:30:48.000000000 +0000
++++ src/parrot-0.8.2/languages/lazy-k/config/makefiles/root.in 2008-12-25 13:44:21.522125000 +0000
+@@ -1,47 +1,104 @@
+-# $Id: /mirror/trunk/languages/lazy-k/config/makefiles/root.in 28688 2008-06-23T00:33:41.905243Z coke $
++# $Id: root.in 31298 2008-09-21 09:36:09Z rurban $
+
+ # Makefile for languages/lazy-k
++HLLNAME = lazy-k
+
+ # Setup of some commands
+-PARROT = @build_dir@/parrot@exe@
+ PERL = @perl@
+ RM_F = @rm_f@
++CP = @cp@
++MKPATH = @mkpath@
++POD2MAN = pod2man
++
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
++PARROT = ../../parrot@exe@
++PBC_TO_EXE = ../../pbc_to_exe@exe@
+ RECONFIGURE = $(PERL) @build_dir@/tools/dev/reconfigure.pl
+-#CONDITIONED_LINE(darwin):
+-#CONDITIONED_LINE(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
+-#CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++#IF(darwin):
++#IF(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
++#IF(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
+
+ # set up location
+ BUILD_DIR = @build_dir@
++BIN_DIR = @bin_dir@
++LIB_DIR = @lib_dir@
++DOC_DIR = @doc_dir@
++MANDIR = @mandir@
++PARROT_LIB = $(BUILD_DIR)/runtime/parrot/library
+
+-default: all
+-all: build
++build: lazy-k.pbc
++
++all: lazy-k.pbc lazy-k@exe@ Makefile installable
++
++lazy-k.pbc : $(SOURCES)
++ $(PARROT) $(PARROT_ARGS) -o lazy-k.pbc lazy.pir
+
+ help :
+ @echo ""
+ @echo "Following targets are available for the user:"
+ @echo ""
+- @echo " build: Nothing to do"
++ @echo " all: lazy-k.pbc"
+ @echo " This is the default."
++ @echo " installable: Create self-hosting bins and libs."
++ @echo " install: Install the installable targets and docs."
+ @echo ""
+- @echo " test: run the test suite,"
+- @echo ""
+- @echo " clean: clean up temporary files"
++ @echo "Testing:"
++ @echo " test: Run the test suite."
++ @echo " test-installable: Test self-hosting targets."
++ @echo " testclean: Clean up test results."
++ @echo ""
++ @echo "Cleaning:"
++ @echo " clean: Basic cleaning up."
++ @echo " realclean: Removes also files generated by 'Configure.pl'"
++ @echo " distclean: Removes also anything built, in theory"
+ @echo ""
+- @echo " realclean: clean up generated files"
++ @echo "Misc:"
++ @echo " help: Print this help message."
+ @echo ""
+- @echo " help: print this help message"
+
+ # regenerate the Makefile
+ Makefile: config/makefiles/root.in
+- cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=lazy-k
++ cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=$(HLLNAME)
+
+-build:
+-
+-test: build
++test: all
+ cd .. && $(PERL) t/harness --languages=lazy-k
+
++# TODO: rename build_dir. basic run for missing libs
++test-installable : installable
++ echo '1+2*3' | ./installable_$(HLLNAME)@exe@ calc.lazy
++
++install : installable
++ $(CP) installable_$(HLLNAME)@exe@ $(DESTDIR)$(BIN_DIR)/parrot-$(HLLNAME)@exe@
++ $(CP) $(HLLNAME).pbc $(DESTDIR)$(LIB_DIR)/parrot/library/$(HLLNAME).pbc
++ $(POD2MAN) lazy.pir > $(DESTDIR)$(MANDIR)/man1/parrot-$(HLLNAME).1
++ $(MKPATH) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++ $(CP) $(DOCS) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++
++installable : installable_$(HLLNAME)@exe@ $(HLLNAME).pbc
++ $(CP) installable_$(HLLNAME)@exe@ $(BUILD_DIR)
++ $(CP) $(HLLNAME).pbc $(PARROT_LIB)/$(HLLNAME).pbc
++
++$(HLLNAME)@exe@: $(HLLNAME).pbc
++ $(PBC_TO_EXE) $(HLLNAME).pbc
++
++installable_$(HLLNAME)@exe@ : $(HLLNAME).pbc
++ $(PBC_TO_EXE) $(HLLNAME).pbc --install
++
+ clean:
++ $(RM_F) core \
++ "*.pbc" \
++ "*~" \
++ $(HLLNAME)@exe@ \
++ "installable_$(HLLNAME)@exe@" \
++ $(PARROT_LIB)/$(HLLNAME).pbc
+
+ realclean: clean
+ $(RM_F) Makefile
++
++distclean: clean realclean
++
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/languages/lazy-k/lazy.pir 2008-12-17 06:55:16.000000000 +0000
++++ src/parrot-0.8.2/languages/lazy-k/lazy.pir 2008-12-25 13:44:21.537750000 +0000
+@@ -61,7 +61,7 @@
+ .local pmc prog, e
+
+ create_globals()
+- e = global "I"
++ e = global("I")
+ prog = parse(in)
+ ## _dumper( prog, "prog" )
+ e = append(e, prog)
+@@ -112,8 +112,8 @@
+ .param pmc church
+
+ .local pmc e, Zero, Inc, result
+- Inc = global "Inc"
+- Zero = global "Zero"
++ Inc = global("Inc")
++ Zero = global("Zero")
+ e = new_apply(church, Inc)
+ e = new_apply(e, Zero)
+ result = eval(e)
+@@ -129,7 +129,7 @@
+ .sub car
+ .param pmc list
+ .local pmc k
+- k = global "K"
++ k = global("K")
+ .tailcall new_apply(list, k)
+ .end
+
+@@ -137,7 +137,7 @@
+ .sub cdr
+ .param pmc list
+ .local pmc ki
+- ki = global "KI"
++ ki = global("KI")
+ .tailcall new_apply(list, ki)
+ .end
+
+@@ -212,9 +212,9 @@
+ .local string ch
+ .local pmc op, arg, NUL
+ .local pmc I, K, S
+- I = global "I"
+- K = global "K"
+- S = global "S"
++ I = global("I")
++ K = global("K")
++ S = global("S")
+ null NUL
+ loop:
+ ch = read io, 1
+@@ -271,7 +271,7 @@
+ .param int i
+
+ .local pmc cached, e
+- cached = global "church_cache"
++ cached = global("church_cache")
+ if i < 0 goto i256
+ if i > 256 goto i256
+ goto ok
+@@ -281,7 +281,7 @@
+ e = cached[i]
+ unless_null e, ret
+ .local pmc sksk, e, cm1
+- sksk = global "SKSK"
++ sksk = global("SKSK")
+ $I0 = i - 1
+ cm1 = int2church($I0)
+ e = new_expr(expS2, sksk, cm1)
+@@ -361,7 +361,7 @@
+ $I0 = ord s
+ eof:
+ cc = int2church($I0)
+- i = global "I"
++ i = global("I")
+ k1c = new_expr(expK1, cc, NUL)
+ s2ik1 = new_expr(expS2, i, k1c)
+ lhs[1] = s2ik1
+--- origsrc/parrot-0.8.2/languages/lisp/config/makefiles/root.in 2008-06-23 02:30:47.000000000 +0000
++++ src/parrot-0.8.2/languages/lisp/config/makefiles/root.in 2008-12-25 13:44:21.553375000 +0000
+@@ -1,41 +1,97 @@
+-# $Id: /mirror/trunk/languages/lisp/config/makefiles/root.in 28688 2008-06-23T00:33:41.905243Z coke $
++# $Id: root.in 31298 2008-09-21 09:36:09Z rurban $
+
+-# Setup some commands
+-RM_F = @rm_f@
++## arguments we want to run parrot with
++PARROT_ARGS =
++
++## configuration settings
++HLLNAME = lisp
++BUILD_DIR = @build_dir@
++LOAD_EXT = @load_ext@
++O = @o@
++BIN_DIR = @bin_dir@
++LIB_DIR = @lib_dir@
++DOC_DIR = @doc_dir@
++MANDIR = @mandir@
++
++## Setup some commands
++LN_S = @lns@
+ PERL = @perl@
++RM_RF = @rm_rf@
++CP = @cp@
++MKPATH = @mkpath@
++POD2MAN = pod2man
++
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
+ PARROT = ../../parrot@exe@
+-BUILD_DIR = @build_dir@
+-RECONFIGURE = $(PERL) @build_dir@/tools/dev/reconfigure.pl
+-#CONDITIONED_LINE(darwin):
+-#CONDITIONED_LINE(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
+-#CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++PBC_TO_EXE = ../../pbc_to_exe@exe@
++CAT = $(PERL) -MExtUtils::Command -e cat
++BUILD_DYNPMC = $(PERL) $(BUILD_DIR)/tools/build/dynpmc.pl
++RECONFIGURE = $(PERL) $(BUILD_DIR)/tools/dev/reconfigure.pl
++#IF(darwin):
++#IF(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
++#IF(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++PARROT_LIB = $(BUILD_DIR)/runtime/parrot/library
++
++DOCS = CHANGES KNOWN_BUGS LICENSE MAINTAINER README
++
++build: lisp.pbc
+
+-all: build
++all: lisp.pbc lisp@exe@ Makefile installable
++
++# regenerate the Makefile
++Makefile: config/makefiles/root.in
++ cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=$(HLLNAME)
++
++test: build
++ $(PERL) -Ilib -I../../lib t/harness
++
++lisp.pbc: lisp.pir
++ $(PARROT) -o lisp.pbc lisp.pir
+
+ # This is a listing of all targets, that are meant to be called by users
+-help :
++help:
+ @echo ""
+ @echo "Following targets are available for the user:"
+ @echo ""
+- @echo " all: 'lisp.pbc'"
++ @echo " all: lisp.pbc"
+ @echo " This is the default."
++ @echo " installable: Create self-hosting bins and libs."
++ @echo " install: Install the installable targets and docs."
+ @echo ""
+- @echo " help: Print this help message."
+- @echo ""
++ @echo "Testing:"
+ @echo " test: Run the test suite."
++ @echo " test-installable: Test self-hosting targets."
++ @echo " testclean: Clean up test results."
+ @echo ""
+- @echo " clean: Cleaning up."
++ @echo "Cleaning:"
++ @echo " clean: Basic cleaning up."
++ @echo " realclean: Removes also files generated by 'Configure.pl'"
++ @echo " distclean: Removes also anything built, in theory"
++ @echo ""
++ @echo "Misc:"
++ @echo " help: Print this help message."
+ @echo ""
+
+-# regenerate the Makefile
+-Makefile: config/makefiles/root.in
+- cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=lisp
+-
+-test: build
+- $(PERL) -Ilib -I../../lib t/harness
++# TODO: rename build_dir. basic run for missing libs
++test-installable : installable
++ ./installable_$(HLLNAME)@exe@
++
++install : installable
++ $(CP) installable_$(HLLNAME)@exe@ $(DESTDIR)$(BIN_DIR)/parrot-$(HLLNAME)@exe@
++ $(CP) $(HLLNAME).pbc $(DESTDIR)$(LIB_DIR)/parrot/library/$(HLLNAME).pbc
++ $(POD2MAN) $(HLLNAME).pir > $(DESTDIR)$(MANDIR)/man1/parrot-$(HLLNAME).1
++ $(MKPATH) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++ $(CP) $(DOCS) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++
++$(HLLNAME)@exe@: $(HLLNAME).pbc
++ $(PBC_TO_EXE) $(HLLNAME).pbc
++
++installable : installable_$(HLLNAME)@exe@ $(HLLNAME).pbc
++ $(CP) installable_$(HLLNAME)@exe@ $(BUILD_DIR)
++ $(CP) $(HLLNAME).pbc $(PARROT_LIB)/$(HLLNAME).pbc
+
+-build: lisp.pir
+- $(PARROT) -o lisp.pbc lisp.pir
++installable_$(HLLNAME)@exe@ : $(HLLNAME).pbc
++ $(PBC_TO_EXE) $(HLLNAME).pbc --install
+
+ clean: testclean
+ $(RM_F) core "*.pbc" "*~"
+@@ -45,3 +101,11 @@
+
+ realclean: clean
+ $(RM_F) Makefile
++
++distclean: realclean
++
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/languages/lolcode/config/makefiles/root.in 2008-09-19 20:45:41.000000000 +0000
++++ src/parrot-0.8.2/languages/lolcode/config/makefiles/root.in 2008-12-25 13:44:21.584625000 +0000
+@@ -4,35 +4,46 @@
+ PARROT_ARGS =
+
+ ## configuration settings
++HLLNAME = lolcode
+ BUILD_DIR = @build_dir@
+ LOAD_EXT = @load_ext@
+ O = @o@
+ EXE = @exe@
++BIN_DIR = @bin_dir@
++LIB_DIR = @lib_dir@
++DOC_DIR = @doc_dir@
++MANDIR = @mandir@
+
+ ## Setup some commands
+ LN_S = @lns@
+ PERL = @perl@
+ RM_RF = @rm_rf@
+ CP = @cp@
+-PARROT = ../../parrot$(EXE)
++MKPATH = @mkpath@
++POD2MAN = pod2man
++
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
++PARROT = ../../parrot@exe@
++PBC_TO_EXE = ../../pbc_to_exe@exe@
+ CAT = $(PERL) -MExtUtils::Command -e cat
+ BUILD_DYNPMC = $(PERL) $(BUILD_DIR)/tools/build/dynpmc.pl
+ RECONFIGURE = $(PERL) $(BUILD_DIR)/tools/dev/reconfigure.pl
+-#CONDITIONED_LINE(darwin):
+-#CONDITIONED_LINE(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
+-#CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++#IF(darwin):
++#IF(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
++#IF(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
+
+ ## places to look for things
+ PARROT_DYNEXT = $(BUILD_DIR)/runtime/parrot/dynext
+-PGE_LIBRARY = $(BUILD_DIR)/runtime/parrot/library/PGE
++PARROT_LIB = $(BUILD_DIR)/runtime/parrot/library
++PGE_LIBRARY = $(PARROT_LIB)/PGE
++PCT = $(PARROT_LIB)/PCT.pbc
+ PERL6GRAMMAR = $(PGE_LIBRARY)/Perl6Grammar.pbc
+ NQP = $(BUILD_DIR)/compilers/nqp/nqp.pbc
+-PCT = $(BUILD_DIR)/runtime/parrot/library/PCT.pbc
+ PBC_TO_EXE = $(BUILD_DIR)/pbc_to_exe$(EXE)
+
+ PMC_DIR = src/pmc
+
+-all: lolcode.pbc
++build: lolcode.pbc
+
+ LOLCODE_GROUP = $(PMC_DIR)/lolcode_group$(LOAD_EXT)
+
+@@ -40,8 +51,7 @@
+ src/gen_grammar.pir \
+ src/gen_actions.pir \
+ src/gen_builtins.pir \
+- src/parser/yarn_literal.pir \
+-# $(LOLCODE_GROUP)
++ src/parser/yarn_literal.pir
+
+ BUILTINS_PIR = \
+ src/builtins/say.pir \
+@@ -52,6 +62,8 @@
+ # PMCS = lolcode
+ # PMC_SOURCES = $(PMC_DIR)/lolcode.pmc
+
++all: lolcode.pbc lolcode@exe@ Makefile installable
++
+ lolcode$(EXE): lolcode.pbc
+ $(PBC_TO_EXE) lolcode.pbc
+
+@@ -74,12 +86,6 @@
+ src/gen_builtins.pir: $(BUILTINS_PIR)
+ $(CAT) $(BUILTINS_PIR) >src/gen_builtins.pir
+
+-$(LOLCODE_GROUP): $(PARROT) $(PMC_SOURCES)
+- cd $(PMC_DIR) && $(BUILD_DYNPMC) generate $(PMCS)
+- cd $(PMC_DIR) && $(BUILD_DYNPMC) compile $(PMCS)
+- cd $(PMC_DIR) && $(BUILD_DYNPMC) linklibs $(PMCS)
+- cd $(PMC_DIR) && $(BUILD_DYNPMC) copy --destination=$(PARROT_DYNEXT) $(PMCS)
+-
+ # regenerate the Makefile
+ Makefile: config/makefiles/root.in
+ cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=lolcode
+@@ -91,8 +97,12 @@
+ @echo ""
+ @echo " all: lolcode.pbc"
+ @echo " This is the default."
++ @echo " installable: Create self-hosting bins and libs."
++ @echo " install: Install the installable targets and docs."
++ @echo ""
+ @echo "Testing:"
+ @echo " test: Run the test suite."
++ @echo " test-installable: Test self-hosting targets."
+ @echo " testclean: Clean up test results."
+ @echo ""
+ @echo "Cleaning:"
+@@ -107,6 +117,22 @@
+ test: all
+ $(PERL) t/harness
+
++# TODO: rename build_dir. basic run for missing libs
++test-installable : installable
++ ./installable_$(HLLNAME)@exe@ t/00-sanity.t
++
++install : installable
++ $(CP) installable_$(HLLNAME)@exe@ $(DESTDIR)$(BIN_DIR)/parrot-$(HLLNAME)@exe@
++ $(CP) $(HLLNAME).pbc $(DESTDIR)$(LIB_DIR)/parrot/library/$(HLLNAME).pbc
++ $(POD2MAN) $(HLLNAME).pir > $(DESTDIR)$(MANDIR)/man1/parrot-$(HLLNAME).1
++
++installable : installable_$(HLLNAME)@exe@ $(HLLNAME).pbc
++ $(CP) installable_$(HLLNAME)@exe@ $(BUILD_DIR)
++ $(CP) $(HLLNAME).pbc $(PARROT_LIB)/$(HLLNAME).pbc
++
++installable_$(HLLNAME)@exe@ : $(HLLNAME).pbc
++ $(PBC_TO_EXE) $(HLLNAME).pbc --install
++
+ # this target has nothing to do
+ testclean:
+
+@@ -121,18 +147,7 @@
+ installable_lolcode$(EXE) \
+ src/gen_grammar.pir \
+ src/gen_actions.pir \
+- src/gen_builtins.pir \
+- $(PMC_DIR)/*.h \
+- $(PMC_DIR)/*.c \
+- $(PMC_DIR)/*.dump \
+- $(PMC_DIR)/*$(O) \
+- $(PMC_DIR)/*$(LOAD_EXT) \
+- $(PMC_DIR)/*.exp \
+- $(PMC_DIR)/*.ilk \
+- $(PMC_DIR)/*.manifest \
+- $(PMC_DIR)/*.pdb \
+- $(PMC_DIR)/*.lib \
+-
++ src/gen_builtins.pir
+
+ clean:
+ $(RM_RF) $(CLEANUPS)
+@@ -140,6 +155,10 @@
+ realclean: clean
+ $(RM_RF) Makefile
+
+-distclean: realclean
+-
++distclean: clean realclean
+
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/languages/lua/config/makefiles/root.in 2008-12-17 06:55:15.000000000 +0000
++++ src/parrot-0.8.2/languages/lua/config/makefiles/root.in 2008-12-25 13:44:21.615875000 +0000
+@@ -2,28 +2,41 @@
+ # $Id: /mirror/trunk/languages/lua/config/makefiles/root.in 33375 2008-11-29T15:35:13.202197Z fperrad $
+
+ ## configuration settings
+-O = @o@
+-LOAD_EXT = @load_ext@
++HLLNAME = lua
++O = @o@
++LOAD_EXT = @load_ext@
+
+ ## Setup some commands
+-MAKE = @make_c@
+-RM_F = @rm_f@
+-PERL = @perl@
+-PARROT = ../../parrot@exe@
+-PBC_MERGE = ../../pbc_merge@exe@
+-PGE = $(PARROT) ../../runtime/parrot/library/PGE/Perl6Grammar.pir
+-TGE = $(PARROT) ../../compilers/tge/tgc.pir
+-PBC_TO_EXE = ../../pbc_to_exe@exe@
++MAKE = @make_c@
++RM_F = @rm_f@
++PERL = @perl@
++CP = @cp@
++MKPATH = @mkpath@
++POD2MAN = pod2man
++
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
++PARROT = ../../parrot@exe@
++PBC_TO_EXE = ../../pbc_to_exe@exe@
++PBC_MERGE = ../../pbc_merge@exe@
++PGE = $(PARROT) ../../runtime/parrot/library/PGE/Perl6Grammar.pir
++TGE = $(PARROT) ../../compilers/tge/tgc.pir
+ RECONFIGURE = $(PERL) @build_dir@/tools/dev/reconfigure.pl
+-PMCBUILD = $(PERL) @build_dir@/tools/build/dynpmc.pl
+-#CONDITIONED_LINE(darwin):
+-#CONDITIONED_LINE(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
+-#CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++PMCBUILD = $(PERL) @build_dir@/tools/build/dynpmc.pl
++#IF(darwin):
++#IF(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
++#IF(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
+
+ ## places to look for things
+-LIBPATH = src/lib
+-PMCDIR = src/pmc
++LIBPATH = src/lib
++PMCDIR = src/pmc
+ PARROT_DYNEXT = @build_dir@/runtime/parrot/dynext
++PARROT_LIB = @build_dir@/runtime/parrot/library
++BUILD_DIR = @build_dir@
++BIN_DIR = @bin_dir@
++LIB_DIR = @lib_dir@
++DOC_DIR = @doc_dir@
++MANDIR = @mandir@
++
+
+ PMCS = \
+ lua \
+@@ -94,6 +107,8 @@
+ GEN_PBC = \
+ lua.pbc
+
++DOCS = MAINTAINER doc/running.pod doc/status.pod
++
+ all: \
+ $(PMCDIR)/lua_group$(LOAD_EXT) \
+ $(LIB_PBCS) \
+@@ -120,6 +135,18 @@
+ $(GEN_PBC) \
+ src/yapp/Lua/parser.pm
+
++# TODO: rename build_dir. basic run for missing libs
++test-installable : installable
++ echo "a=1" | ./installable_$(HLLNAME)@exe@
++
++install : installable
++ $(CP) installable_$(HLLNAME)@exe@ $(DESTDIR)$(BIN_DIR)/parrot-$(HLLNAME)@exe@
++ $(CP) $(HLLNAME).pbc $(DESTDIR)$(LIB_DIR)/parrot/library/$(HLLNAME).pbc
++ $(CP) lualibs.pbc $(DESTDIR)$(LIB_DIR)/parrot/library/lualibs.pbc
++ @cd $(PMCDIR) && $(PMCBUILD) copy "--destination=$(DESTDIR)$(LIB_DIR)/parrot/dynext" $(PMCS)
++ $(POD2MAN) doc/running.pod > $(DESTDIR)$(MANDIR)/man1/parrot-$(HLLNAME).1
++ $(MKPATH) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++ $(CP) $(DOCS) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
+
+ src/lua51_testlex_gen.pir: src/lua51_testlex.pg
+ $(PGE) --output=src/lua51_testlex_gen.pir src/lua51_testlex.pg
+@@ -139,10 +166,25 @@
+
+ lua.pbc: lua.pir src/lua51.pir src/grammar51.pir src/lua51_gen.pir src/PASTGrammar_gen.pir src/POSTGrammar_gen.pir $(LIB_SRCS)
+ $(PARROT) -o lua.pbc --output-pbc lua.pir
++# $(PBC_MERGE) -o lua.pbc lua_i.pbc ../../compilers/tge/TGE/Rule.pbc
+
+ lua@exe@: lua.pbc
+ $(PBC_TO_EXE) lua.pbc
+
++installable_lua@exe@: lua.pbc
++ $(PBC_TO_EXE) lua.pbc --install
++
++$(PARROT_LIB)/$(HLLNAME).pbc: $(HLLNAME).pbc
++ $(CP) $(HLLNAME).pbc $(PARROT_LIB)/$(HLLNAME).pbc
++
++$(PARROT_LIB)/lualibs.pbc: $(LIBPATH)/lualibs.pbc
++ $(CP) $(LIBPATH)/lualibs.pbc $(PARROT_LIB)/lualibs.pbc
++
++installable: installable_lua@exe@ $(PMCDIR)/lua_group$(LOAD_EXT) \
++ $(PARROT_LIB)/$(HLLNAME).pbc \
++ $(PARROT_LIB)/lualibs.pbc
++ $(CP) installable_$(HLLNAME)@exe@ $(BUILD_DIR)
++
+ $(LIBPATH)/lualibs.pbc: $(LIB_PBCS)
+ $(PBC_MERGE) -o $(LIBPATH)/lualibs.pbc $(LIB_PBCS)
+
+@@ -260,7 +302,7 @@
+
+ # regenerate the Makefile
+ Makefile: config/makefiles/root.in
+- cd ../.. && $(RECONFIGURE) --step=gen::languages --languages=lua
++ cd ../.. && $(RECONFIGURE) --step=gen::languages --languages=$(HLLNAME)
+
+ help:
+ @echo ""
+@@ -268,8 +310,12 @@
+ @echo ""
+ @echo " all:"
+ @echo " This is the default."
++ @echo " installable: Create self-hosting binaries."
++ @echo " install: Install the installable targets and docs."
++ @echo ""
+ @echo "Testing:"
+ @echo " test: Run the test suite."
++ @echo " test-installable: Test self-hosting targets."
+ @echo " testclean: Clean up test results."
+ @echo ""
+ @echo "Cleaning:"
+@@ -284,7 +330,6 @@
+ test: all
+ cd .. && $(PERL) t/harness --languages=lua
+
+-
+ TEST_CLEANERS = \
+ "t/pmc/*.pir" \
+ "t/*.pir" \
+@@ -298,6 +343,7 @@
+
+ BUILD_CLEANERS = \
+ lua@exe@ \
++ installable_lua@exe@ \
+ lua$(O) \
+ lua.c \
+ "*.pbc" \
+@@ -308,7 +354,9 @@
+ "$(PMCDIR)/*_group.h" \
+ "$(PMCDIR)/*$(LOAD_EXT)" \
+ "$(PMCDIR)/*$(O)" \
+- "$(LIBPATH)/*.pbc"
++ "$(LIBPATH)/*.pbc" \
++ $(PARROT_LIB)/$(HLLNAME).pbc \
++ $(PARROT_LIB)/lualibs.pbc
+
+ clean:
+ $(RM_F) $(BUILD_CLEANERS) $(TEST_CLEANERS)
+@@ -317,3 +365,9 @@
+ $(RM_F) Makefile
+
+ distclean: realclean
++
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/languages/m4/config/makefiles/root.in 2008-06-23 02:30:45.000000000 +0000
++++ src/parrot-0.8.2/languages/m4/config/makefiles/root.in 2008-12-25 13:44:21.678375000 +0000
+@@ -1,27 +1,49 @@
+ # $Id: /mirror/trunk/languages/m4/config/makefiles/root.in 28688 2008-06-23T00:33:41.905243Z coke $
+
+ # Makefile for languages/m4
++HLLNAME = m4
+
+-# Setup of some commands
+-PARROT = ../../parrot@exe@
++# Setup of some commands and dirs
+ PERL = @perl@
+ RM_RF = @rm_rf@
+ TOUCH = $(PERL) -MExtUtils::Command -e touch
++CP = @cp@
++MKPATH = @mkpath@
++POD2MAN = pod2man
+ BUILD_DIR = @build_dir@
++BIN_DIR = @bin_dir@
++LIB_DIR = @lib_dir@
++DOC_DIR = @doc_dir@
++MANDIR = @mandir@
++PARROT_LIB = $(BUILD_DIR)/runtime/parrot/library
++
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
++PARROT = ../../parrot@exe@
++PBC_TO_EXE = ../../pbc_to_exe@exe@
+ RECONFIGURE = $(PERL) @build_dir@/tools/dev/reconfigure.pl
+-#CONDITIONED_LINE(darwin):
+-#CONDITIONED_LINE(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
+-#CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++#IF(darwin):
++#IF(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
++#IF(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++
++DOCS = BUGS ChangeLog LICENSE MAINTAINER README TODO.pod VERSION \
++ doc/features.pod doc/freezing.pod doc/operation.pod doc/running.pod
+
+-default: all
+-all: build
++default: build
++
++all: build m4@exe@ installable_m4@exe@
++
++build: m4.pbc
+
+ help:
+ @echo ""
+ @echo "Following targets are available for the user:"
+ @echo ""
+- @echo " all: m4.pbc"
++ @echo " all: m4.pbc m4@exe@"
++ @echo " build: m4.pbc"
+ @echo " This is the default."
++ @echo " installable: Create self-hosting bins and libs."
++ @echo " install: Install the installable targets and docs."
++ @echo ""
+ @echo "Testing:"
+ @echo " test: Run the test suite."
+ @echo " test-gnu-m4: Run the test suite on the installed GNU m4."
+@@ -47,34 +69,62 @@
+ test-gnu-m4: build
+ PARROT_M4_TEST_PROG='m4' $(PERL) -Ilib -I../../lib t/harness
+
+-build: m4.pbc
+-
+ m4.pbc: src/m4.pir
+- $(PARROT) -o m4.pbc src/m4.pir
++ $(PARROT) -o m4.pbc src/m4.pir
++
++src/m4.pir: src/builtin.pir src/freeze.pir src/input.pir src/macro.pir src/output.pir
++ $(TOUCH) $@
++
++# TODO: rename build_dir. basic run for missing libs
++test-installable : installable
++ ./installable_$(HLLNAME)@exe@
++
++install : installable
++ $(CP) installable_$(HLLNAME)@exe@ $(DESTDIR)$(BIN_DIR)/parrot-$(HLLNAME)@exe@
++ $(CP) $(HLLNAME).pbc $(DESTDIR)$(LIB_DIR)/parrot/library/$(HLLNAME).pbc
++ $(POD2MAN) doc/running.pod > $(DESTDIR)$(MANDIR)/man1/parrot-$(HLLNAME).1
++ $(MKPATH) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++ $(CP) $(DOCS) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++
++m4@exe@: $(HLLNAME).pbc
++ $(PBC_TO_EXE) $(HLLNAME).pbc
++
++installable : installable_$(HLLNAME)@exe@ $(HLLNAME).pbc
++ $(CP) installable_$(HLLNAME)@exe@ $(BUILD_DIR)
++ $(CP) $(PARROT_LIB)/$(HLLNAME).pbc $(HLLNAME).pbc
+
+-src/m4.pir: src/builtin.pir src/freeze.pir src/input.pir src/macro.pir src/output.pir
+- $(TOUCH) $@
++installable_$(HLLNAME)@exe@ : $(HLLNAME).pbc
++ $(PBC_TO_EXE) $(HLLNAME).pbc --install
+
+-html:
+- mkdir docs/html
++html:
++ $(MKPATH) docs/html
+ pod2html docs/*.pod -o docs/html
+-
++
+ perlcritic:
+ $(PERL) tools/scrutinize.pl
+-
++
+ clean:
+ $(RM_RF) \
+-m4.pbc \
+-"*.pdb" \
+-"*.obj" \
+-"src/*.pbc" \
+-"src/*~" \
+-"t/*/*.m4" \
+-"t/*/*.pir_out" \
+-"t/*/*.gnu_out" \
+-"t/*/*.pir"
++ m4.pbc \
++ "*.pdb" \
++ "*.obj" \
++ "src/*.pbc" \
++ "src/*~" \
++ "t/*/*.m4" \
++ "t/*/*.pir_out" \
++ "t/*/*.gnu_out" \
++ "t/*/*.pir" \
++ installable_$(HLLNAME)@exe@ \
++ $(HLLNAME)@exe@ \
++ $(PARROT_LIB)/$(HLLNAME).pbc
+
+ realclean: clean
+ $(RM_RF) Makefile
+
+ distclean: realclean
++
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/languages/markdown/config/makefiles/root.in 2008-09-16 04:30:05.000000000 +0000
++++ src/parrot-0.8.2/languages/markdown/config/makefiles/root.in 2008-12-25 13:44:21.725250000 +0000
+@@ -5,28 +5,44 @@
+ PARROT_ARGS =
+
+ ## configuration settings
++HLLNAME = markdown
+ BUILD_DIR = @build_dir@
++LOAD_EXT = @load_ext@
++O = @o@
++BIN_DIR = @bin_dir@
++LIB_DIR = @lib_dir@
++DOC_DIR = @doc_dir@
++MANDIR = @mandir@
+
+ ## Setup some commands
+ LN_S = @lns@
+ PERL = @perl@
+ RM_F = @rm_f@
+-RM_RF = @rm_rf@
+ CP = @cp@
++MKPATH = @mkpath@
++POD2MAN = pod2man
++
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
+ PARROT = ../../parrot@exe@
++PBC_TO_EXE = ../../pbc_to_exe@exe@
+ CAT = $(PERL) -MExtUtils::Command -e cat
+ RECONFIGURE = $(PERL) $(BUILD_DIR)/tools/dev/reconfigure.pl
+-#CONDITIONED_LINE(darwin):
+-#CONDITIONED_LINE(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
+-#CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++#IF(darwin):
++#IF(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
++#IF(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
+
+ ## places to look for things
++PARROT_LIB = $(BUILD_DIR)/runtime/parrot/library
+ PGE_LIBRARY = $(BUILD_DIR)/runtime/parrot/library/PGE
+ PERL6GRAMMAR = $(PGE_LIBRARY)/Perl6Grammar.pbc
+ NQP = $(BUILD_DIR)/compilers/nqp/nqp.pbc
+ PCT = $(BUILD_DIR)/runtime/parrot/library/PCT.pbc
+
+-all: markdown.pbc
++DOCS = README
++
++build: markdown.pbc
++
++all: markdown.pbc Makefile markdown@exe@ installable
+
+ SOURCES = \
+ markdown.pir \
+@@ -40,7 +56,7 @@
+ src/builtins/length.pir \
+
+ # the default target
+-markdown.pbc: $(PARROT) $(SOURCES)
++markdown.pbc: $(SOURCES)
+ $(PARROT) $(PARROT_ARGS) -o markdown.pbc markdown.pir
+
+ src/gen_grammar.pir: $(PERL6GRAMMAR) src/parser/grammar.pg
+@@ -55,6 +71,16 @@
+ src/gen_builtins.pir: $(BUILTINS_PIR)
+ $(CAT) $(BUILTINS_PIR) >src/gen_builtins.pir
+
++installable : installable_$(HLLNAME)@exe@ $(HLLNAME).pbc
++ $(CP) installable_$(HLLNAME)@exe@ $(BUILD_DIR)
++ $(CP) $(HLLNAME).pbc $(PARROT_LIB)/$(HLLNAME).pbc
++
++$(HLLNAME)@exe@: $(HLLNAME).pbc
++ $(PBC_TO_EXE) $(HLLNAME).pbc
++
++installable_$(HLLNAME)@exe@: $(HLLNAME).pbc
++ $(PBC_TO_EXE) $(HLLNAME).pbc --install
++
+ # regenerate the Makefile
+ Makefile: config/makefiles/root.in
+ cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=markdown
+@@ -64,10 +90,15 @@
+ @echo ""
+ @echo "Following targets are available for the user:"
+ @echo ""
+- @echo " all: markdown.pbc"
++ @echo " build: markdown.pbc"
+ @echo " This is the default."
++ @echo " all: markdown.pbc markdown@exe@ installable"
++ @echo " installable: Create self-hosting bins and libs."
++ @echo " install: Install the installable targets and docs."
++ @echo ""
+ @echo "Testing:"
+ @echo " test: Run the test suite."
++ @echo " test-installable: Test self-hosting targets."
+ @echo " testclean: Clean up test results."
+ @echo ""
+ @echo "Cleaning:"
+@@ -91,24 +122,42 @@
+ t/MarkdownTest_1.0: t/MarkdownTest_1.0.zip
+ cd t && perl -MArchive::Zip -e "Archive::Zip->new(q{MarkdownTest_1.0.zip})->extractTree();"
+
++# TODO: rename build_dir. basic run for missing libs
++test-installable : installable
++ echo "2-1" | ./installable_$(HLLNAME)@exe@
++
++install : installable
++ $(CP) installable_$(HLLNAME)@exe@ $(DESTDIR)$(BIN_DIR)/parrot-$(HLLNAME)@exe@
++ $(CP) $(HLLNAME).pbc $(DESTDIR)$(LIB_DIR)/parrot/library/$(HLLNAME).pbc
++ $(POD2MAN) $(HLLNAME).pir > $(DESTDIR)$(MANDIR)/man1/parrot-$(HLLNAME).1
++ -$(MKPATH) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++ $(CP) $(DOCS) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++
+ TEST_CLEANUPS = \
+ "t/*.html" \
+ "t/*.text"
+
+ testclean:
+- $(RM_RF) t/MarkdownTest_1.0
+ $(RM_F) $(TEST_CLEANUPS)
+
+ GEN_CLEANUPS = \
+ markdown.pbc \
+ src/gen_grammar.pir \
+- src/gen_actions.pir
++ src/gen_actions.pir \
++ installable_$(HLLNAME)@exe@ \
++ $(HLLNAME)@exe@ \
++ $(PARROT_LIB)/$(HLLNAME).pbc
+
+ clean: testclean
+ $(RM_F) $(GEN_CLEANUPS)
+
+ realclean: clean
+- $(RM_F) Makefile t/MarkdownTest_1.0.zip
++ $(RM_F) Makefile
+
+ distclean: realclean
+
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/languages/ook/config/makefiles/root.in 2008-06-23 02:30:48.000000000 +0000
++++ src/parrot-0.8.2/languages/ook/config/makefiles/root.in 2008-12-25 13:44:21.740875000 +0000
+@@ -1,20 +1,34 @@
+ # $Id: /mirror/trunk/languages/ook/config/makefiles/root.in 28688 2008-06-23T00:33:41.905243Z coke $
+
+ # Makefile for languages/ook
++HLLNAME = ook
+
+ # Set up of commands
+-PARROT = ../../parrot
+ PERL = @perl@
+ RM_F = @rm_f@
++CP = @cp@
++MKPATH = @mkpath@
++POD2MAN = pod2man
++
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
++PARROT = ../../parrot@exe@
++PBC_TO_EXE = ../../pbc_to_exe@exe@
+ RECONFIGURE = $(PERL) @build_dir@/tools/dev/reconfigure.pl
+-#CONDITIONED_LINE(darwin):
+-#CONDITIONED_LINE(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
+-#CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++PARROT_LIB = $(BUILD_DIR)/runtime/parrot/library
++#IF(darwin):
++#IF(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
++#IF(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
+
+ # Set up directories
+ BUILD_DIR = @build_dir@
++BIN_DIR = @bin_dir@
++LIB_DIR = @lib_dir@
++DOC_DIR = @doc_dir@
++MANDIR = @mandir@
+
+-default: all
++DOCS = Changes MAINTAINER README
++
++build: ook.pbc
+
+ help :
+ @echo ""
+@@ -33,22 +47,53 @@
+
+ # regenerate the Makefile
+ Makefile: config/makefiles/root.in
+- cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=ook
++ cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=$(HLLNAME)
++
++all: ook.pbc Makefile ook@exe@ installable
+
+-all: build
++build: ook.pbc
++
++ook.pbc: ook.pasm
++ $(PARROT) -o ook.pbc ook.pasm
+
+ test: build
+ $(PERL) -I../../lib t/harness
+
+-build: ook.pasm
+- $(PARROT) -o ook.pbc ook.pasm
++ook@exe@: ook.pbc
++ $(PBC_TO_EXE) ook.pbc
++
++installable_ook@exe@: ook.pbc
++ $(PBC_TO_EXE) ook.pbc --install
++
++installable: installable_$(HLLNAME)@exe@ $(HLLNAME).pbc
++ $(CP) installable_$(HLLNAME)@exe@ $(BUILD_DIR)
++ $(CP) $(HLLNAME).pbc $(PARROT_LIB)/$(HLLNAME).pbc
++
++# TODO: rename build_dir. basic run for missing libs
++test-installable : installable
++ ./installable_$(HLLNAME)@exe@ hello.ook
++
++install : installable
++ $(CP) installable_$(HLLNAME)@exe@ $(DESTDIR)$(BIN_DIR)/parrot-$(HLLNAME)@exe@
++ $(CP) $(HLLNAME).pbc $(DESTDIR)$(LIB_DIR)/parrot/library/$(HLLNAME).pbc
++ -$(MKPATH) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++ $(CP) $(DOCS) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
+
+ clean:
+ $(RM_F) core \
+ "*.pbc" \
+ "*~" \
+ "hello.out" \
+- "foo.p*"
++ "foo.p*" \
++ $(HLLNAME)@exe@ \
++ installable_* \
++ $(PARROT_LIB)/$(HLLNAME).pbc
+
+ realclean: clean
+ $(RM_F) Makefile
++
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/languages/parrot_compiler/config/makefiles/root.in 2008-06-23 02:30:48.000000000 +0000
++++ src/parrot-0.8.2/languages/parrot_compiler/config/makefiles/root.in 2008-12-25 13:44:21.756500000 +0000
+@@ -6,11 +6,14 @@
+ # Set up commands
+ PERL = @perl@
+ RM_F = @rm_f@
++
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
+ PARROT = ../../@test_prog@@exe@
++PBC_TO_EXE = ../../pbc_to_exe@exe@
+ RECONFIGURE = $(PERL) @build_dir@/tools/dev/reconfigure.pl
+-#CONDITIONED_LINE(darwin):
+-#CONDITIONED_LINE(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
+-#CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++#IF(darwin):
++#IF(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
++#IF(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
+
+ # Set up directories
+ BUILD_DIR = @build_dir@
+@@ -55,3 +58,8 @@
+ parrot_compiler.pasm : parrot_compiler.pir
+ $(PARROT) -o parrot_compiler.pasm parrot_compiler.pir
+
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/languages/perl6/config/makefiles/root.in 2008-12-17 06:55:13.000000000 +0000
++++ src/parrot-0.8.2/languages/perl6/config/makefiles/root.in 2008-12-25 13:44:21.803375000 +0000
+@@ -1,19 +1,24 @@
+ # $Id: /mirror/trunk/languages/perl6/config/makefiles/root.in 34015 2008-12-16T21:59:39.435893Z tene $
+
+ # arguments we want to run parrot with
+-PARROT_ARGS =
++HLLNAME = perl6
++PARROT_ARGS =
+
+ # places to look for things
+ BUILD_DIR = @build_dir@
+ PARROT_DYNEXT = $(BUILD_DIR)/runtime/parrot/dynext
+-PGE_LIBRARY = $(BUILD_DIR)/runtime/parrot/library/PGE
+-PERL6GRAMMAR = $(PGE_LIBRARY)/Perl6Grammar.pbc
++PARROT_LIB = $(BUILD_DIR)/runtime/parrot/library
++PERL6GRAMMAR = $(PARROT_LIB)/PGE/Perl6Grammar.pbc
+ NQP = $(BUILD_DIR)/compilers/nqp/nqp.pbc
+ PCT = $(BUILD_DIR)/runtime/parrot/library/PCT.pbc
+ PMC_DIR = src/pmc
+ OPSDIR = src/ops
+ OPSLIB = perl6
+ OPS_FILE = src/ops/perl6.ops
++BIN_DIR = @bin_dir@
++LIB_DIR = @lib_dir@
++DOC_DIR = @doc_dir@
++MANDIR = @mandir@
+
+ # Set up extensions
+ LOAD_EXT = @load_ext@
+@@ -24,17 +29,23 @@
+ MAKE = @make_c@
+ PERL = @perl@
+ RM_F = @rm_f@
+-PARROT = ../../parrot$(EXE)
++CP = @cp@
++
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
++PARROT = ../../parrot@exe@
++PBC_TO_EXE = ../../pbc_to_exe@exe@
+ CAT = $(PERL) -MExtUtils::Command -e cat
+ BUILD_DYNPMC = $(PERL) $(BUILD_DIR)/tools/build/dynpmc.pl
+ BUILD_DYNOPS = $(PERL) $(BUILD_DIR)/tools/build/dynoplibs.pl
+ RECONFIGURE = $(PERL) $(BUILD_DIR)/tools/dev/reconfigure.pl
+-PBC_TO_EXE = $(BUILD_DIR)/pbc_to_exe$(EXE)
+-#CONDITIONED_LINE(darwin):
+-#CONDITIONED_LINE(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
+-#CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++#IF(darwin):
++#IF(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
++#IF(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++DOCS = README MAINTAINER ROADMAP docs/compiler_overview.pod docs/glossary.pod docs/STATUS
++
++build: perl6.pbc Test.pir
+
+-all: perl6.pbc
++all: build perl6$(EXE) installable
+
+ xmas: perl6$(EXE)
+
+@@ -113,6 +124,7 @@
+ PMC_SOURCES = $(PMC_DIR)/perl6str.pmc $(PMC_DIR)/objectref.pmc $(PMC_DIR)/perl6scalar.pmc \
+ $(PMC_DIR)/mutablevar.pmc $(PMC_DIR)/perl6multisub.pmc
+ PERL6_GROUP = $(PMC_DIR)/perl6_group$(LOAD_EXT)
++DOCS = README MAINTAINER ROADMAP docs/compiler_overview.pod docs/glossary.pod docs/STATUS
+
+ # targets for building a standalone perl6.
+ # (We're not quite ready to make this a default target.)
+@@ -129,6 +141,9 @@
+ Test.pir: Test.pm perl6.pbc
+ $(PARROT) $(PARROT_ARGS) perl6.pbc --target=pir --output=Test.pir Test.pm
+
++$(PERL6GRAMMAR): $(PARROT_LIB)/PGE/Perl6Grammar.pir
++ cd $(BUILD_DIR) && $(PARROT) $(PARROT_ARGS) -o $(PERL6GRAMMAR) $(PARROT_LIB)/PGE/Perl6Grammar.pir
++
+ src/gen_grammar.pir: $(PERL6GRAMMAR) src/parser/grammar.pg src/parser/grammar-oper.pg
+ $(PARROT) $(PARROT_ARGS) $(PERL6GRAMMAR) \
+ --output=src/gen_grammar.pir \
+@@ -147,7 +162,7 @@
+ src/gen_junction.pir: build/gen_junction_pir.pl
+ $(PERL) build/gen_junction_pir.pl src/gen_junction.pir
+
+-$(PERL6_GROUP): $(PARROT) $(PMC_SOURCES)
++$(PERL6_GROUP): $(PMC_SOURCES)
+ cd $(PMC_DIR) && $(BUILD_DYNPMC) generate $(PMCS)
+ cd $(PMC_DIR) && $(BUILD_DYNPMC) compile $(PMCS)
+ cd $(PMC_DIR) && $(BUILD_DYNPMC) linklibs $(PMCS)
+@@ -172,6 +187,8 @@
+ @echo " This is the default."
+ @echo " perl6$(EXE): Some want a pony, others are satisfied with an executable."
+ @echo " xmas: Christmas is when Perl 6 is released. Alias of perl6$(EXE)."
++ @echo " installable: Create self-hosting binaries."
++ @echo " install: Install the installable targets and docs."
+ @echo ""
+ @echo "Testing:"
+ @echo " test: Run coretest and codetest."
+@@ -182,6 +199,7 @@
+ @echo " spectest_full: Run all tests of the official test suite"
+ @echo " localtest: Run the official tests given in t/localtest.data."
+ @echo " fulltest: Run coretest, spectest_regression, and codetest."
++ @echo " test-installable: Test self-hosting targets."
+ @echo ""
+ @echo "Cleaning:"
+ @echo " clean: Basic cleaning up."
+@@ -244,6 +262,26 @@
+ t/spec:
+ svn co http:////svn.pugscode.org//pugs//t//spec t/spec
+
++# TODO: rename build_dir. basic run for missing libs
++test-installable : installable
++ ./installable_$(HLLNAME)@exe@ -e'say 1'
++
++install : installable
++ $(CP) installable_$(HLLNAME)@exe@ $(DESTDIR)$(BIN_DIR)/parrot-perl6@exe@
++ $(CP) installable_$(HLLNAME)@exe@ $(DESTDIR)$(BIN_DIR)/rakudo@exe@
++ $(CP) $(HLLNAME).pbc $(DESTDIR)$(LIB_DIR)/parrot/library/$(HLLNAME).pbc
++ @cd $(PMC_DIR) && $(BUILD_DYNPMC) copy "--destination=$(DESTDIR)$(LIB_DIR)/parrot/dynext" $(PMCS)
++ @cd $(OPSDIR) && $(BUILD_DYNOPS) copy "--destination=$(DESTDIR)$(LIB_DIR)/parrot/dynext" $(OPSLIB)
++ $(POD2MAN) doc/running.pod > $(DESTDIR)$(MANDIR)/man1/perl6.1
++ $(MKPATH) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++ $(CP) $(DOCS) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++
++installable : installable_$(HLLNAME)@exe@ $(PERL6_GROUP) $(HLLNAME).pbc
++ $(CP) installable_$(HLLNAME)@exe@ $(BUILD_DIR)
++ $(CP) $(HLLNAME).pbc $(PARROT_LIB)/$(HLLNAME).pbc
++ @cd $(PMC_DIR) && $(BUILD_DYNPMC) copy "--destination=$(PARROT_DYNEXT)" $(PMCS)
++ @cd $(OPSDIR) && $(BUILD_DYNOPS) copy "--destination=$(PARROT_DYNEXT)" $(OPSLIB)
++
+ CLEANUPS = \
+ perl6.pbc \
+ perl6.c \
+@@ -277,3 +315,9 @@
+ $(RM_F) src/utils/Makefile Makefile
+
+ distclean: realclean
++
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/languages/perl6/config/makefiles/utils.in 2008-02-01 07:32:23.000000000 +0000
++++ src/parrot-0.8.2/languages/perl6/config/makefiles/utils.in 2008-12-25 13:44:21.803375000 +0000
+@@ -1,99 +1,132 @@
+-# $Id: /mirror/trunk/languages/perl6/config/makefiles/utils.in 25407 2008-02-01T07:32:20.072018Z chromatic $
+-
+-## arguments we want to run parrot with
+-PARROT_ARGS =
+-
+-## configuration settings
+-BUILD_DIR = @build_dir@
+-LOAD_EXT = @load_ext@
+-O = @o@
+-
+-## Setup some commands
+-LN_S = @lns@
+-PERL = @perl@
+-RM_RF = @rm_rf@
+-CP = @cp@
+-MAKE = @make_c@
+-PARROT = ../../../../parrot@exe@
+-CAT = $(PERL) -MExtUtils::Command -e cat
+-BUILD_DYNPMC = $(PERL) $(BUILD_DIR)/tools/build/dynpmc.pl
+-RECONFIGURE = $(PERL) $(BUILD_DIR)/tools/dev/reconfigure.pl
+-
+-## places to look for things
+-PARROT_DYNEXT = $(BUILD_DIR)/runtime/parrot/dynext
+-PGE_LIBRARY = $(BUILD_DIR)/runtime/parrot/library/PGE
+-PERL6GRAMMAR = $(PGE_LIBRARY)/Perl6Grammar.pbc
+-NQP = $(BUILD_DIR)/compilers/nqp/nqp.pbc
+-PCT = $(BUILD_DIR)/runtime/parrot/library/PCT.pbc
+-PBC_TO_EXE = $(BUILD_DIR)/pbc_to_exe@exe@
+-
+-
+-all: perl6doc.pbc
+-
+-PERL6DOC_SOURCES = \
+- perl6doc.pir \
+- perl6doc/gen_grammar.pir \
+- perl6doc/gen_actions.pir \
+-
+-
+-perl6doc@exe@: perl6doc.pbc
+- $(PBC_TO_EXE) perl6doc.pbc
+-
+-perl6doc.pbc: $(PARROT) $(PERL6DOC_SOURCES)
+- $(PARROT) $(PARROT_ARGS) -o perl6doc.pbc perl6doc.pir
+-
+-perl6doc/gen_grammar.pir: $(PERL6GRAMMAR) perl6doc/grammar.pg
+- $(PARROT) $(PARROT_ARGS) $(PERL6GRAMMAR) \
+- --output=perl6doc/gen_grammar.pir \
+- perl6doc/grammar.pg
+-
+-perl6doc/gen_actions.pir: $(NQP) $(PCT) perl6doc/actions.pm
+- $(PARROT) $(PARROT_ARGS) $(NQP) --output=perl6doc/gen_actions.pir \
+- --target=pir perl6doc/actions.pm
+-
+-
+-# regenerate the Makefile
+-Makefile: ../../config/makefiles/root.in ../../config/makefiles/utils.in
+- cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=perl6
+-
+-# This is a listing of all targets, that are meant to be called by users
+-help:
+- @echo ""
+- @echo "Following targets are available for the user:"
+- @echo ""
+- @echo " all: perl6doc.pbc"
+- @echo " This is the default."
+- @echo "Testing:"
+- @echo " test: Run the test suite."
+- @echo " testclean: Clean up test results."
+- @echo ""
+- @echo "Cleaning:"
+- @echo " clean: Basic cleaning up."
+- @echo " realclean: Removes also files generated by 'Configure.pl'"
+- @echo " distclean: Removes also anything built, in theory"
+- @echo ""
+- @echo "Misc:"
+- @echo " help: Print this help message."
+- @echo ""
+-
+-test: all
+- $(PERL) t/harness t/01-sanity
+-
+-# this target has nothing to do
+-testclean:
+-
+-CLEANUPS = \
+- perl6doc.pbc \
+- perl6doc@exe@ \
+- perl6doc.c \
+- perl6doc/gen_grammar.pir \
+- perl6doc/gen_actions.pir \
+-
+-
+-clean:
+- $(RM_RF) $(CLEANUPS)
+-
+-realclean: clean
+- $(RM_RF) Makefile
+-
+-distclean: realclean
++# $Id: /mirror/trunk/languages/perl6/config/makefiles/utils.in 25407 2008-02-01T07:32:20.072018Z chromatic $
++
++## arguments we want to run parrot with
++HLLNAME = perl6doc
++PARROT_ARGS =
++
++## configuration settings
++BUILD_DIR = @build_dir@
++LOAD_EXT = @load_ext@
++O = @o@
++BIN_DIR = @bin_dir@
++LIB_DIR = @lib_dir@
++DOC_DIR = @doc_dir@
++MANDIR = @mandir@
++
++## Setup some commands
++LN_S = @lns@
++PERL = @perl@
++RM_RF = @rm_rf@
++CP = @cp@
++MKPATH = @mkpath@
++POD2MAN = pod2man
++MAKE = @make_c@
++
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
++PARROT = $(BUILD_DIR)/parrot@exe@
++PBC_TO_EXE = $(BUILD_DIR)/pbc_to_exe@exe@
++CAT = $(PERL) -MExtUtils::Command -e cat
++BUILD_DYNPMC = $(PERL) $(BUILD_DIR)/tools/build/dynpmc.pl
++RECONFIGURE = $(PERL) $(BUILD_DIR)/tools/dev/reconfigure.pl
++
++## places to look for things
++PARROT_DYNEXT = $(BUILD_DIR)/runtime/parrot/dynext
++PGE_LIBRARY = $(BUILD_DIR)/runtime/parrot/library/PGE
++PERL6GRAMMAR = $(PGE_LIBRARY)/Perl6Grammar.pbc
++NQP = $(BUILD_DIR)/compilers/nqp/nqp.pbc
++PCT = $(BUILD_DIR)/runtime/parrot/library/PCT.pbc
++PBC_TO_EXE = $(BUILD_DIR)/pbc_to_exe@exe@
++
++
++all: perl6doc.pbc
++
++PERL6DOC_SOURCES = \
++ perl6doc.pir \
++ perl6doc/gen_grammar.pir \
++ perl6doc/gen_actions.pir \
++
++
++perl6doc@exe@: perl6doc.pbc
++ $(PBC_TO_EXE) perl6doc.pbc
++
++perl6doc.pbc: $(PERL6DOC_SOURCES)
++ $(PARROT) $(PARROT_ARGS) -o perl6doc.pbc perl6doc.pir
++
++perl6doc/gen_grammar.pir: $(PERL6GRAMMAR) perl6doc/grammar.pg
++ $(PARROT) $(PARROT_ARGS) $(PERL6GRAMMAR) \
++ --output=perl6doc/gen_grammar.pir \
++ perl6doc/grammar.pg
++
++perl6doc/gen_actions.pir: $(NQP) $(PCT) perl6doc/actions.pm
++ $(PARROT) $(PARROT_ARGS) $(NQP) --output=perl6doc/gen_actions.pir \
++ --target=pir perl6doc/actions.pm
++
++
++# regenerate the Makefile
++Makefile: ../../config/makefiles/root.in ../../config/makefiles/utils.in
++ cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=perl6
++
++# This is a listing of all targets, that are meant to be called by users
++help:
++ @echo ""
++ @echo "Following targets are available for the user:"
++ @echo ""
++ @echo " all: perl6doc.pbc"
++ @echo " This is the default."
++ @echo " installable: Create self-hosting binaries."
++ @echo " install: Install the installable targets and docs."
++ @echo ""
++ @echo "Testing:"
++ @echo " test: Run the test suite."
++ @echo " testclean: Clean up test results."
++ @echo ""
++ @echo "Cleaning:"
++ @echo " clean: Basic cleaning up."
++ @echo " realclean: Removes also files generated by 'Configure.pl'"
++ @echo " distclean: Removes also anything built, in theory"
++ @echo ""
++ @echo "Misc:"
++ @echo " help: Print this help message."
++ @echo ""
++
++installable_perl6doc@exe@: perl6doc.pbc
++ $(PBC_TO_EXE) perl6doc.pbc --install
++
++install : installable
++ $(CP) installable_$(HLLNAME)@exe@ $(DESTDIR)$(BIN_DIR)/$(HLLNAME)@exe@
++
++installable : installable_$(HLLNAME)@exe@
++ $(CP) installable_$(HLLNAME)@exe@ $(BUILD_DIR)
++
++# TODO: rename build_dir. basic run for missing libs
++test-installable : installable
++ ./installable_$(HLLNAME)@exe@ -f 'test'
++
++
++test: all
++ $(PERL) t/harness t/01-sanity
++
++# this target has nothing to do
++testclean:
++
++CLEANUPS = \
++ perl6doc.pbc \
++ perl6doc@exe@ \
++ perl6doc.c \
++ perl6doc/gen_grammar.pir \
++ perl6doc/gen_actions.pir \
++
++
++clean:
++ $(RM_RF) $(CLEANUPS)
++
++realclean: clean
++ $(RM_RF) Makefile
++
++distclean: realclean
++
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/languages/pheme/config/makefiles/root.in 2008-06-23 02:30:48.000000000 +0000
++++ src/parrot-0.8.2/languages/pheme/config/makefiles/root.in 2008-12-25 13:44:21.881500000 +0000
+@@ -1,22 +1,39 @@
+ # $Id: /mirror/trunk/languages/pheme/config/makefiles/root.in 28688 2008-06-23T00:33:41.905243Z coke $
+
+ # configuration settings
++HLLNAME = pheme
+ BUILD_DIR = @build_dir@
++BIN_DIR = @bin_dir@
++LIB_DIR = @lib_dir@
++DOC_DIR = @doc_dir@
++MANDIR = @mandir@
+
+ # Setup some commands
+ PERL = @perl@
+ RM_F = @rm_f@
++CP = @cp@
++MKPATH = @mkpath@
++POD2MAN = pod2man
++EXE = @exe@
++
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
+ PARROT = ../../parrot@exe@
++PBC_TO_EXE = ../../pbc_to_exe@exe@
+ TGE_DIR = ../../compilers/tge
++PARROT_LIB = $(BUILD_DIR)/runtime/parrot/library
+ PGE_LIBRARY = $(BUILD_DIR)/runtime/parrot/library/PGE
+ PERL6GRAMMAR = $(PGE_LIBRARY)/Perl6Grammar.pbc
+ RECONFIGURE = $(PERL) $(BUILD_DIR)/tools/dev/reconfigure.pl
+-#CONDITIONED_LINE(darwin):
+-#CONDITIONED_LINE(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
+-#CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++#IF(darwin):
++#IF(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
++#IF(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++
++DOCS = MAINTAINER MANIFEST README TODO
++
++# the default targets
++build: pheme.pbc Makefile
+
+-# the default target
+-all: pheme.pbc
++all: pheme.pbc Makefile pheme$(EXE) installable
+
+ lib/pheme_grammar_gen.pir: lib/pheme.g
+ $(PARROT) $(PERL6GRAMMAR) \
+@@ -28,6 +45,12 @@
+ pheme.pbc: pheme.pir lib/PhemeSymbols.pir lib/PhemeObjects.pir lib/ASTGrammar.pir lib/pheme_grammar_gen.pir
+ $(PARROT) -o pheme.pbc pheme.pir
+
++pheme$(EXE): pheme.pbc
++ $(PBC_TO_EXE) pheme.pbc
++
++installable_pheme$(EXE): pheme.pbc
++ $(PBC_TO_EXE) pheme.pbc --install
++
+ # regenerate the Makefile
+ Makefile: config/makefiles/root.in
+ cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=pheme
+@@ -39,6 +62,9 @@
+ @echo ""
+ @echo " all: pheme.pbc"
+ @echo " This is the default."
++ @echo " installable: Create self-hosting bins and libs."
++ @echo " install: Install the installable targets and docs."
++ @echo ""
+ @echo "Testing:"
+ @echo " test: Run the test suite."
+ @echo " testclean: Clean up test results."
+@@ -58,13 +84,35 @@
+ testclean:
+ $(RM_F) "t/*.out"
+
++
++# TODO: rename build_dir. basic run for missing libs
++test-installable : installable
++ ./installable_$(HLLNAME)@exe@ -e'say 1'
++
++install : installable
++ $(CP) installable_$(HLLNAME)@exe@ $(DESTDIR)$(BIN_DIR)/parrot-$(HLLNAME)@exe@
++ $(CP) $(HLLNAME).pbc $(DESTDIR)$(LIB_DIR)/parrot/library/$(HLLNAME).pbc
++ $(POD2MAN) $(HLLNAME).pir > $(DESTDIR)$(MANDIR)/man1/parrot-$(HLLNAME).1
++ $(MKPATH) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++ $(CP) $(DOCS) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++
++installable : installable_$(HLLNAME)@exe@ $(HLLNAME).pbc
++ $(CP) installable_$(HLLNAME)@exe@ $(BUILD_DIR)
++ $(CP) $(HLLNAME).pbc $(PARROT_LIB)/$(HLLNAME).pbc
++
+ clean: testclean
+ $(RM_F) pheme.pbc
+ $(RM_F) lib/pheme_grammar_gen.pir
+- $(RM_F) lib/*.pbc
++ $(RM_F) lib/*.pbc $(PARROT_LIB)/$(HLLNAME).pbc installable_*
+ $(RM_F) lib/ASTGrammar.pir
+
+ realclean: clean
+ $(RM_F) Makefile
+
+ distclean: realclean
++
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/languages/pipp/config/makefiles/root.in 2008-12-17 06:55:16.000000000 +0000
++++ src/parrot-0.8.2/languages/pipp/config/makefiles/root.in 2008-12-25 13:44:21.912750000 +0000
+@@ -1,28 +1,40 @@
+ # $Id: /mirror/trunk/languages/pipp/config/makefiles/root.in 33374 2008-11-29T14:53:59.533402Z bernhard $
+
+ # Set up extensions
++HLLNAME = pipp
+ LOAD_EXT = @load_ext@
+ O = @o@
+ EXE = @exe@
+
+ # Set up directories
+ BUILD_DIR = @build_dir@
++BIN_DIR = @bin_dir@
++LIB_DIR = @lib_dir@
++DOC_DIR = @doc_dir@
++MANDIR = @mandir@
+ LIBRARY_DIR = $(BUILD_DIR)/runtime/parrot/library
+ INCLUDE_DIR = $(BUILD_DIR)/include
+ PMCDIR = src/pmc
++PARROT_DYNEXT = $(BUILD_DIR)/runtime/parrot/dynext
++PARROT_LIB = $(BUILD_DIR)/runtime/parrot/library
+ PIPPDIR = $(BUILD_DIR)/languages/pipp
+ HASHDIR = $(PIPPDIR)/src
+ PARROT_DYNEXT = @build_dir@/runtime/parrot/dynext
+
+ # Set up commands
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
+ PARROT = $(BUILD_DIR)/parrot@exe@
++PBC_TO_EXE = $(BUILD_DIR)/pbc_to_exe$(EXE)
++PBC_MERGE = $(BUILD_DIR)/pbc_merge$(EXE)
+ PERL = @perl@
+ RM_F = @rm_f@
++CP = @cp@
++MKPATH = @mkpath@
++POD2MAN = pod2man
+ RECONFIGURE = $(PERL) $(BUILD_DIR)/tools/dev/reconfigure.pl
+ PMCBUILD = $(PERL) @build_dir@/tools/build/dynpmc.pl
+ NQP = $(BUILD_DIR)/compilers/nqp/nqp.pbc
+ PCT = $(BUILD_DIR)/runtime/parrot/library/PCT.pbc
+-PBC_TO_EXE = $(BUILD_DIR)/pbc_to_exe$(EXE)
+ CC = @cc@
+ #copy/pasta from CFLAGS in config/gen/makefiles/dynpmc_pl.in
+ CFLAGS = @ccflags@ @cc_shared@ @cc_debug@ @ccwarn@ @cc_hasjit@ @cg_flag@ @gc_flag@
+@@ -115,8 +127,14 @@
+ src/common/php_gmp.pbc \
+ src/common/php_pcre.pbc
+
++DOCS = README ChangeLog CREDITS MAINTAINER TODO \
++ docs/antlr3.pod docs/overview.pod docs/testing.pod
++
++
+ # default
+-all: build
++build: build-pct
++
++all: Makefile build pipp$(EXE) installable
+
+ # This is a listing of all targets, that are meant to be called by users
+ help:
+@@ -172,8 +190,6 @@
+ java org.antlr.Tool src/antlr3/Pipp.g
+ java org.antlr.Tool -lib src/antlr3 src/antlr3/GenPastNqp.g
+
+-build: build-pct
+-
+ build-all: build-pct build-phc build-antlr3
+
+ #build-common: pmc src/common/pipplib.pbc pipp.pbc $(PHP_EXT) Test.pir
+@@ -191,6 +207,9 @@
+ pipp$(EXE): build-common
+ $(PBC_TO_EXE) pipp.pbc
+
++installable_pipp$(EXE): build-common
++ $(PBC_TO_EXE) pipp.pbc --install
++
+ src/common/pipplib.pbc: src/common/builtins.pir src/common/guts.pir src/common/eval.pir src/common/php_standard.pir $(PHP_SRC_STD_EXT) src/common/php_API.pir src/common/php_MACRO.pir
+ $(PARROT) -o src/common/pipplib.pbc src/common/builtins.pir
+
+@@ -203,8 +222,8 @@
+ src/common/php_pcre.pbc: src/common/php_pcre.pir src/common/php_MACRO.pir
+ $(PARROT) -o src/common/php_pcre.pbc src/common/php_pcre.pir
+
+-src/pct/gen_grammar.pir: $(LIBRARY_DIR)/PGE/Perl6Grammar.pir src/pct/grammar.pg
+- $(PARROT) $(LIBRARY_DIR)/PGE/Perl6Grammar.pir \
++src/pct/gen_grammar.pir: $(PARROT_LIB)/PGE/Perl6Grammar.pir src/pct/grammar.pg
++ $(PARROT) $(PARROT_LIB)/PGE/Perl6Grammar.pir \
+ --output=src/pct/gen_grammar.pir src/pct/grammar.pg
+
+ src/pct/gen_actions.pir: $(NQP) $(PCT) src/pct/actions.pm
+@@ -233,12 +252,25 @@
+ export DYNPMC_INCLUDE=$(PIPPDIR)
+ export DYNPMC_LINK=$(HASH_OBJS)
+
+-$(PHP_GROUP): $(PMC_SOURCES)
++$(PHP_GROUP): $(PARROT) $(PMC_SOURCES)
+ @cd $(PMCDIR) && $(PMCBUILD) generate $(PMCS)
+- @cd $(PMCDIR) && $(PMCBUILD) compile $(PMCS)
+- @cd $(PMCDIR) && $(PMCBUILD) linklibs $(PMCS)
++ @cd $(PMCDIR) && DYNPMC_INCLUDE=$(PIPPDIR) $(PMCBUILD) compile $(PMCS)
++ @cd $(PMCDIR) && DYNPMC_LINK=$(HASH_OBJS) $(PMCBUILD) linklibs $(PMCS)
+ @cd $(PMCDIR) && $(PMCBUILD) copy "--destination=$(PARROT_DYNEXT)" $(PMCS)
+
++installable : installable_$(HLLNAME)@exe@ pmc $(HLLNAME).pbc src/common/pipplib.pbc $(PHP_EXT)
++ $(CP) installable_$(HLLNAME)@exe@ $(BUILD_DIR)
++ $(CP) $(HLLNAME).pbc $(PARROT_LIB)/$(HLLNAME).pbc
++ $(CP) src/common/pipplib.pbc $(PHP_EXT) $(PARROT_LIB)
++
++install : installable
++ $(CP) installable_$(HLLNAME)@exe@ $(DESTDIR)$(BIN_DIR)/parrot-$(HLLNAME)@exe@
++ $(CP) $(HLLNAME).pbc $(DESTDIR)$(LIB_DIR)/parrot/library/$(HLLNAME).pbc
++ $(CP) src/common/pipplib.pbc $(PHP_EXT) $(DESTDIR)$(LIB_DIR)/parrot/library
++ @cd $(PMCDIR) && $(PMCBUILD) copy "--destination=$(DESTDIR)$(LIB_DIR)/parrot/dynext" $(PMCS)
++ $(MKPATH) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++ $(CP) $(DOCS) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++
+ test: all test-pct
+
+ test-all: all test-php test-phc test-antlr3 test-pct test-pmc
+@@ -305,7 +337,8 @@
+ src/common/pipplib.pbc \
+ src/common/*.pbc \
+ pipp.pbc \
+- pipp.c pipp.o pipp$(EXE)
++ pipp.c pipp@o@ pipp@exe@ \
++ $(PARROT_LIB)/$(HLLNAME).pbc $(HLLNAME)@exe@ installable_*
+
+ clean-pmc:
+ $(RM_F) "$(PMCDIR)/*dump" "$(PMCDIR)/*.c" "$(PMCDIR)/pmc_*h" "$(PMCDIR)/php_group.h" "$(PMCDIR)/*$(O)" "$(PMCDIR)/*$(LOAD_EXT)"
+--- origsrc/parrot-0.8.2/languages/pipp/src/common/pipp.pir 2008-12-17 06:55:17.000000000 +0000
++++ src/parrot-0.8.2/languages/pipp/src/common/pipp.pir 2008-12-25 13:44:21.990875000 +0000
+@@ -85,17 +85,21 @@
+ # determine location of libs from the Parrot config
+ .local pmc cfg
+ cfg = _config()
+- .local string lib_dir, pbc_fn
+- lib_dir = cfg['build_dir']
+- lib_dir .= '/languages/pipp/src/common'
++ .local string installed, lib_dir, pbc_fn
++ lib_dir = ''
++ installed = cfg['installed']
++ if installed goto inst
+
+- pbc_fn = concat lib_dir, '/pipplib.pbc'
++ lib_dir = cfg['build_dir']
++ lib_dir .= '/languages/pipp/src/common/'
++inst:
++ pbc_fn = concat lib_dir, 'pipplib.pbc'
+ load_bytecode pbc_fn
+- pbc_fn = concat lib_dir, '/php_ctype.pbc'
++ pbc_fn = concat lib_dir, 'php_ctype.pbc'
+ load_bytecode pbc_fn
+- pbc_fn = concat lib_dir, '/php_gmp.pbc'
++ pbc_fn = concat lib_dir, 'php_gmp.pbc'
+ load_bytecode pbc_fn
+- pbc_fn = concat lib_dir, '/php_pcre.pbc'
++ pbc_fn = concat lib_dir, 'php_pcre.pbc'
+ load_bytecode pbc_fn
+
+ load_bytecode 'CGI/QueryHash.pbc'
+--- origsrc/parrot-0.8.2/languages/punie/config/makefiles/root.in 2008-06-23 02:30:47.000000000 +0000
++++ src/parrot-0.8.2/languages/punie/config/makefiles/root.in 2008-12-25 13:44:22.084625000 +0000
+@@ -1,24 +1,38 @@
+ # $Id: /mirror/trunk/languages/punie/config/makefiles/root.in 28688 2008-06-23T00:33:41.905243Z coke $
+
+ # Setup some commands
+-LN_S = @lns@
+-PERL = @perl@
+-RM_F = @rm_f@
+-PARROT = ../../parrot@exe@
++HLLNAME = punie
++LN_S = @lns@
++PERL = @perl@
++RM_F = @rm_f@
++CP = @cp@
++MKPATH = @mkpath@
++POD2MAN = pod2man
+ BUILD_DIR = @build_dir@
+-RECONFIGURE = $(PERL) @build_dir@/tools/dev/reconfigure.pl
+-PGE_DIR = ../../compilers/pge
+-NQP_DIR = ../../compilers/nqp
+-CP = @cp@
+-#CONDITIONED_LINE(darwin):
+-#CONDITIONED_LINE(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
+-#CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++BIN_DIR = @bin_dir@
++LIB_DIR = @lib_dir@
++DOC_DIR = @doc_dir@
++MANDIR = @mandir@
++
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
++PARROT = $(BUILD_DIR)/parrot@exe@
++PBC_TO_EXE = $(BUILD_DIR)/pbc_to_exe@exe@
++RECONFIGURE = $(PERL) $(BUILD_DIR)/tools/dev/reconfigure.pl
++#IF(darwin):
++#IF(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
++#IF(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++
++PARROT_LIB = $(BUILD_DIR)/runtime/parrot/library
++PGE_LIBRARY = $(BUILD_DIR)/runtime/parrot/library/PGE
++PGE_DIR = $(BUILD_DIR)/compilers/pge
++NQP_DIR = $(BUILD_DIR)/compilers/nqp
+
+-PARROT_LIBRARY = ../../runtime/parrot/library
+-PGE_LIBRARY = ../../runtime/parrot/library/PGE
++DOCS = MAINTAINER README overview.pod
+
+ # the default target
+-all: punie.pbc
++build: punie.pbc
++
++all: punie.pbc punie@exe@ installable_punie@exe@
+
+ SOURCES = punie.pir \
+ src/parser/grammar.pg \
+@@ -36,8 +50,12 @@
+ @echo ""
+ @echo "Following targets are available for the user:"
+ @echo ""
+- @echo " all: punie.pbc"
++ @echo " build: punie.pbc"
+ @echo " This is the default."
++ @echo " all: punie.pbc punie@exe@"
++ @echo " installable: Create self-hosting bins and libs."
++ @echo " install: Install the installable targets and docs."
++ @echo ""
+ @echo "Testing:"
+ @echo " test: Run the test suite."
+ @echo " testclean: Clean up test results."
+@@ -56,7 +74,28 @@
+
+ # regenerate the Makefile
+ Makefile: config/makefiles/root.in
+- cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=punie
++ cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=$(HLLNAME)
++
++# TODO: rename build_dir. basic run for missing libs
++test-installable : installable
++ ./installable_$(HLLNAME)@exe@ demo.p1
++
++install : installable
++ $(CP) installable_$(HLLNAME)@exe@ $(DESTDIR)$(BIN_DIR)/parrot-$(HLLNAME)@exe@
++ $(CP) $(HLLNAME).pbc $(DESTDIR)$(LIB_DIR)/parrot/library/$(HLLNAME).pbc
++ $(POD2MAN) $(HLLNAME).pir > $(DESTDIR)$(MANDIR)/man1/parrot-$(HLLNAME).1
++ -$(MKPATH) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++ $(CP) $(DOCS) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++
++$(HLLNAME)@exe@: $(HLLNAME).pbc
++ $(PBC_TO_EXE) $(HLLNAME).pbc
++
++installable : installable_$(HLLNAME)@exe@ $(HLLNAME).pbc
++ $(CP) installable_$(HLLNAME)@exe@ $(BUILD_DIR)
++ $(CP) $(HLLNAME).pbc $(PARROT_LIB)/$(HLLNAME).pbc
++
++installable_$(HLLNAME)@exe@ : $(HLLNAME).pbc
++ $(PBC_TO_EXE) $(HLLNAME).pbc --install
+
+ testclean:
+ $(RM_F) "t/*.p1" "t/*.out" "t/*.pir"
+@@ -65,6 +104,7 @@
+ punie.pbc \
+ src/gen_punie.pir \
+ src/gen_punie-actions.pir \
++ $(PARROT_LIB)/$(HLLNAME).pbc punie@exe@ installable_*
+
+ clean: testclean
+ $(RM_F) $(CLEANUPS)
+@@ -73,3 +113,9 @@
+ $(RM_F) Makefile
+
+ distclean: realclean
++
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/languages/pynie/config/makefiles/root.in 2008-10-05 20:44:25.000000000 +0000
++++ src/parrot-0.8.2/languages/pynie/config/makefiles/root.in 2008-12-25 13:44:22.147125000 +0000
+@@ -1,36 +1,52 @@
+ # $Id: /mirror/trunk/languages/pynie/config/makefiles/root.in 31714 2008-10-05T19:35:53.959641Z moritz $
+
+ ## arguments we want to run parrot with
+-PARROT_ARGS =
++HLLNAME = pynie
++PARROT_ARGS =
+
+ ## configuration settings
+ BUILD_DIR = @build_dir@
+ LOAD_EXT = @load_ext@
+ O = @o@
++BIN_DIR = @bin_dir@
++LIB_DIR = @lib_dir@
++DOC_DIR = @doc_dir@
++MANDIR = @mandir@
+
+ ## Setup some commands
+ LN_S = @lns@
+ PERL = @perl@
+ RM_RF = @rm_rf@
+ CP = @cp@
++MKPATH = @mkpath@
++POD2MAN = pod2man
++
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
+ PARROT = ../../parrot@exe@
++PBC_TO_EXE = ../../pbc_to_exe@exe@
+ CAT = $(PERL) -MExtUtils::Command -e cat
+ BUILD_DYNPMC = $(PERL) $(BUILD_DIR)/tools/build/dynpmc.pl
+ RECONFIGURE = $(PERL) $(BUILD_DIR)/tools/dev/reconfigure.pl
+-#CONDITIONED_LINE(darwin):
+-#CONDITIONED_LINE(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
+-#CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++#IF(darwin):
++#IF(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
++#IF(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
+
+ ## places to look for things
+ PARROT_DYNEXT = $(BUILD_DIR)/runtime/parrot/dynext
+-PGE_LIBRARY = $(BUILD_DIR)/runtime/parrot/library/PGE
++PARROT_LIB = $(BUILD_DIR)/runtime/parrot/library
++PGE_LIBRARY = $(PARROT_LIB)/PGE
++PCT = $(PARROT_LIB)/PCT.pbc
+ PERL6GRAMMAR = $(PGE_LIBRARY)/Perl6Grammar.pbc
+ NQP = $(BUILD_DIR)/compilers/nqp/nqp.pbc
+ PCT = $(BUILD_DIR)/runtime/parrot/library/PCT.pbc
+
+ PMC_DIR = src/pmc
+
+-all: pynie.pbc
++DOCS = MAINTAINER README
++
++build : pynie.pbc
++
++all: pynie.pbc Makefile pynie@exe@ installable
+
+ SOURCES = pynie.pir \
+ src/gen_grammar.pir \
+@@ -63,8 +79,12 @@
+ @echo ""
+ @echo "Following targets are available for the user:"
+ @echo ""
+- @echo " all: pynie.pbc"
++ @echo " build: pynie.pbc"
+ @echo " This is the default."
++ @echo " all: pynie.pbc pynie@exe@ installable"
++ @echo " installable: Create self-hosting bins and libs."
++ @echo " install: Install the installable targets and docs."
++ @echo ""
+ @echo "Testing:"
+ @echo " test: Run the test suite."
+ @echo " testclean: Clean up test results."
+@@ -84,10 +104,33 @@
+ # this target has nothing to do
+ testclean:
+
++# TODO: rename build_dir. basic run for missing libs
++test-installable : installable
++ ./installable_$(HLLNAME)@exe@ t/00-parrot/03-op-logic.t
++
++$(HLLNAME)@exe@: $(HLLNAME).pbc
++ $(PBC_TO_EXE) $(HLLNAME).pbc
++
++installable_$(HLLNAME)@exe@ : $(HLLNAME).pbc
++ $(PBC_TO_EXE) $(HLLNAME).pbc --install
++
++installable : installable_$(HLLNAME)@exe@ $(HLLNAME).pbc
++ $(CP) installable_$(HLLNAME)@exe@ $(BUILD_DIR)
++ $(CP) $(HLLNAME).pbc $(PARROT_LIB)/$(HLLNAME).pbc
++
++install : installable
++ $(CP) installable_$(HLLNAME)@exe@ $(DESTDIR)$(BIN_DIR)/parrot-$(HLLNAME)@exe@
++ $(CP) $(HLLNAME).pbc $(DESTDIR)$(LIB_DIR)/parrot/library/$(HLLNAME).pbc
++ $(POD2MAN) pynie.pir > $(DESTDIR)$(MANDIR)/man1/parrot-$(HLLNAME).1
++ $(MKPATH) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++ $(CP) $(DOCS) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++
+ CLEANUPS = \
+ pynie.pbc \
+ src/gen_grammar.pir \
+ src/gen_actions.pir \
++ $(PARROT_LIB)/$(HLLNAME).pbc \
++ $(HLLNAME)@exe@ installable_*
+
+ clean:
+ $(RM_RF) $(CLEANUPS)
+@@ -96,3 +139,9 @@
+ $(RM_RF) Makefile
+
+ distclean: realclean
++
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/languages/regex/config/makefiles/root.in 2008-06-23 02:30:47.000000000 +0000
++++ src/parrot-0.8.2/languages/regex/config/makefiles/root.in 2008-12-25 13:44:22.178375000 +0000
+@@ -2,33 +2,46 @@
+ # $Id: /mirror/trunk/languages/regex/config/makefiles/root.in 28688 2008-06-23T00:33:41.905243Z coke $
+
+ # Makefile for languages/regex
+-
+-# Set up commands
+-PARROT = ../../parrot@exe@
+-PERL = @perl@
+-RM_F = @rm_f@
+-YAPP = yapp
+-PMC_DIR = pmc
+-BUILD_DYNPMC = $(PERL) @build_dir@/tools/build/dynpmc.pl
+-PARROT_DYNEXT = @build_dir@/runtime/parrot/dynext
+-RECONFIGURE = $(PERL) @build_dir@/tools/dev/reconfigure.pl
+-#CONDITIONED_LINE(darwin):
+-#CONDITIONED_LINE(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
+-#CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++HLLNAME = regex
+
+ # Set up directories
+-LOAD_EXT = @load_ext@
++PMC_DIR = pmc
+ BUILD_DIR = @build_dir@
++BIN_DIR = @bin_dir@
++LIB_DIR = @lib_dir@
++DOC_DIR = @doc_dir@
++MANDIR = @mandir@
+
+ # set up extensions
++LOAD_EXT = @load_ext@
+ O = @o@
+
++# Set up commands
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
++PARROT = ../../parrot@exe@
++PBC_TO_EXE = ../../pbc_to_exe@exe@
++PERL = @perl@
++RM_F = @rm_f@
++YAPP = yapp
++CP = @cp@
++MKPATH = @mkpath@
++POD2MAN = pod2man
++BUILD_DYNPMC = $(PERL) $(BUILD_DIR)/tools/build/dynpmc.pl
++PARROT_DYNEXT = $(BUILD_DIR)/runtime/parrot/dynext
++PARROT_LIB = $(BUILD_DIR)/runtime/parrot/library
++RECONFIGURE = $(PERL) $(BUILD_DIR)/tools/dev/reconfigure.pl
++#IF(darwin):
++#IF(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
++#IF(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++
+ PMCS = match matchrange
+
+ PMC_SOURCES = $(PMC_DIR)/match.pmc $(PMC_DIR)/matchrange.pmc
+
+ build : lib/Regex/Grammar.pm $(PMC_DIR)/match_group$(LOAD_EXT) regex-compiler.pbc
+
++all : build Makefile installable
++
+ # regenerate the Makefile
+ Makefile: config/makefiles/root.in
+ cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=regex
+@@ -39,12 +52,34 @@
+ regex-compiler.pbc : regex-compiler.pir
+ $(PARROT) -o regex-compiler.pbc regex-compiler.pir
+
+-$(PMC_DIR)/match_group$(LOAD_EXT): $(PARROT) $(PMC_SOURCES)
++regex-compiler@exe@ : regex-compiler.pbc
++ $(PBC_TO_EXE) regex-compiler.pbc
++
++$(PMC_DIR)/match_group$(LOAD_EXT): $(PMC_SOURCES)
+ cd $(PMC_DIR) && $(BUILD_DYNPMC) generate $(PMCS)
+ cd $(PMC_DIR) && $(BUILD_DYNPMC) compile $(PMCS)
+ cd $(PMC_DIR) && $(BUILD_DYNPMC) linklibs $(PMCS)
+ cd $(PMC_DIR) && $(BUILD_DYNPMC) copy --destination=$(PARROT_DYNEXT) $(PMCS)
+
++installable : installable_$(HLLNAME)@exe@ regex-compiler.pbc
++ $(CP) installable_$(HLLNAME)@exe@ $(BUILD_DIR)
++ $(CP) regex-compiler.pbc $(PARROT_LIB)/regex-compiler.pbc
++
++installable_regex@exe@: regex-compiler.pbc
++ $(PBC_TO_EXE) regex-compiler.pbc --install
++ $(MV) installable_regex-compiler@exe@ installable_regex@exe@
++
++# TODO: test for installed libs, rename build_dir. basic run for missing libs
++test-installable : installable
++ ./installable_$(HLLNAME)@exe@ "(a+)?a" "aa"
++
++install : installable
++ $(CP) installable_$(HLLNAME)@exe@ $(DESTDIR)$(BIN_DIR)/parrot-$(HLLNAME)@exe@
++ $(CP) regex-compiler.pbc $(DESTDIR)$(LIB_DIR)/parrot/library/regex-compiler.pbc
++ $(POD2MAN) regex-compiler.pir > $(DESTDIR)$(MANDIR)/man1/parrot-$(HLLNAME).1
++ $(MKPATH) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++ $(CP) $(DOCS) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++
+ # Note: These tend to be in the order of the latest thing I've been
+ # working on to the oldest, so that I see the failures quicker.
+ .PHONY: test
+@@ -70,7 +105,8 @@
+ $(PMC_DIR)/*.pdb \
+ $(PMC_DIR)/*.lib \
+ test_regex.pir \
+- test_regex.pbc
++ test_regex.pbc \
++ $(PARROT_LIB)/regex-compiler.pbc
+
+ clean:
+ $(RM_F) $(CLEANUPS)
+@@ -80,3 +116,8 @@
+
+ distclean: realclean
+
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/languages/scheme/config/makefiles/root.in 2008-06-23 02:30:48.000000000 +0000
++++ src/parrot-0.8.2/languages/scheme/config/makefiles/root.in 2008-12-25 13:44:22.209625000 +0000
+@@ -2,17 +2,22 @@
+ # $Id: /mirror/trunk/languages/scheme/config/makefiles/root.in 28688 2008-06-23T00:33:41.905243Z coke $
+
+ # Makefile for languages/scheme
++HLLNAME = scheme
+
+ # Set up commands
+ PERL = @perl@
+ RM_F = @rm_f@
+ RECONFIGURE = $(PERL) @build_dir@/tools/dev/reconfigure.pl
+-#CONDITIONED_LINE(darwin):
+-#CONDITIONED_LINE(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
+-#CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++#IF(darwin):
++#IF(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
++#IF(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
+
+ # Set up directories
+ BUILD_DIR = @build_dir@
++LIB_DIR = @lib_dir@
++DOC_DIR = @doc_dir@
++MANDIR = @mandir@
++#PERL_LIB = @ perl_lib @
+
+ # The default target
+ default: build
+@@ -34,12 +39,22 @@
+
+ # regenerate the Makefile
+ Makefile: config/makefiles/root.in
+- cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=scheme
++ cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=$(HLLNAME)
+
+ # Compilation:
+ build:
+ $(PERL) -c schemec
+
++# perl libs where? need @ perl_lib @
++# -$(MKPATH) $(DESTDIR)$(LIB_DIR)
++# -$(MKPATH) $(DESTDIR)$(LIB_DIR)/Scheme
++# $(CP) lib/Scheme.pm $(DESTDIR)$(LIB_DIR)/Scheme.pm
++# $(CP) lib/Scheme/*.pm $(DESTDIR)$(LIB_DIR)/Scheme
++install : installable
++ $(CP) schemec $(DESTDIR)$(BIN_DIR)/parrot-schemec
++ $(MKPATH) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++ $(CP) $(DOCS) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++
+ # cleaning up
+
+ clean:
+@@ -60,3 +75,9 @@
+ # testing
+ test:
+ cd .. && $(PERL) scheme/t/harness
++
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/languages/squaak/config/makefiles/root.in 2008-06-23 02:30:48.000000000 +0000
++++ src/parrot-0.8.2/languages/squaak/config/makefiles/root.in 2008-12-25 13:44:22.272125000 +0000
+@@ -4,52 +4,71 @@
+ PARROT_ARGS =
+
+ ## configuration settings
++HLLNAME = squaak
+ BUILD_DIR = @build_dir@
+ LOAD_EXT = @load_ext@
+ O = @o@
++BIN_DIR = @bin_dir@
++LIB_DIR = @lib_dir@
++DOC_DIR = @doc_dir@
++MANDIR = @mandir@
+
+ ## Setup some commands
+ LN_S = @lns@
+ PERL = @perl@
+ RM_RF = @rm_rf@
+ CP = @cp@
++MKPATH = @mkpath@
++POD2MAN = pod2man
++
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
+ PARROT = ../../parrot@exe@
++PBC_TO_EXE = ../../pbc_to_exe@exe@
+ CAT = $(PERL) -MExtUtils::Command -e cat
+ BUILD_DYNPMC = $(PERL) $(BUILD_DIR)/tools/build/dynpmc.pl
+ RECONFIGURE = $(PERL) $(BUILD_DIR)/tools/dev/reconfigure.pl
+-#CONDITIONED_LINE(darwin):
+-#CONDITIONED_LINE(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
+-#CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++#IF(darwin):
++#IF(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
++#IF(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
+
+ ## places to look for things
+ PARROT_DYNEXT = $(BUILD_DIR)/runtime/parrot/dynext
+-PGE_LIBRARY = $(BUILD_DIR)/runtime/parrot/library/PGE
++PARROT_LIB = $(BUILD_DIR)/runtime/parrot/library
++PGE_LIBRARY = $(PARROT_LIB)/PGE
++PCT = $(PARROT_LIB)/PCT.pbc
+ PERL6GRAMMAR = $(PGE_LIBRARY)/Perl6Grammar.pbc
+ NQP = $(BUILD_DIR)/compilers/nqp/nqp.pbc
+-PCT = $(BUILD_DIR)/runtime/parrot/library/PCT.pbc
+-
+-PMC_DIR = src/pmc
+
+-all: squaak.pbc
++build: squaak.pbc
+
+-SQUAAK_GROUP = $(PMC_DIR)/squaak_group$(LOAD_EXT)
++all: build squaak@exe@ installable
+
+ SOURCES = squaak.pir \
+ src/gen_grammar.pir \
+ src/gen_actions.pir \
+- src/gen_builtins.pir \
+-# $(SQUAAK_GROUP)
++ src/gen_builtins.pir
+
+ BUILTINS_PIR = \
+ src/builtins/say.pir \
+
+-# PMCS = squaak
+-# PMC_SOURCES = $(PMC_DIR)/squaak.pmc
++DOCS = MAINTAINER README \
++ pod/tutorial_episode_1.pod \
++ pod/tutorial_episode_2.pod \
++ pod/tutorial_episode_3.pod \
++ pod/tutorial_episode_4.pod \
++ pod/tutorial_episode_5.pod \
++ pod/tutorial_episode_6.pod \
++ pod/tutorial_episode_7.pod \
++ pod/tutorial_episode_8.pod \
++ pod/tutorial_episode_9.pod
+
+ # the default target
+ squaak.pbc: $(PARROT) $(SOURCES)
+ $(PARROT) $(PARROT_ARGS) -o squaak.pbc squaak.pir
+
++squaak@exe@: $(HLLNAME).pbc
++ $(PBC_TO_EXE) $(HLLNAME).pbc
++
+ src/gen_grammar.pir: $(PERL6GRAMMAR) src/parser/grammar.pg
+ $(PARROT) $(PARROT_ARGS) $(PERL6GRAMMAR) \
+ --output=src/gen_grammar.pir \
+@@ -62,23 +81,39 @@
+ src/gen_builtins.pir: $(BUILTINS_PIR)
+ $(CAT) $(BUILTINS_PIR) >src/gen_builtins.pir
+
+-$(SQUAAK_GROUP): $(PARROT) $(PMC_SOURCES)
+- cd $(PMC_DIR) && $(BUILD_DYNPMC) generate $(PMCS)
+- cd $(PMC_DIR) && $(BUILD_DYNPMC) compile $(PMCS)
+- cd $(PMC_DIR) && $(BUILD_DYNPMC) linklibs $(PMCS)
+- cd $(PMC_DIR) && $(BUILD_DYNPMC) copy --destination=$(PARROT_DYNEXT) $(PMCS)
++# TODO: rename build_dir. basic run for missing libs
++test-installable : installable
++ ./installable_$(HLLNAME)@exe@
++
++install : installable
++ $(CP) installable_$(HLLNAME)@exe@ $(DESTDIR)$(BIN_DIR)/parrot-$(HLLNAME)@exe@
++ $(CP) $(HLLNAME).pbc $(DESTDIR)$(LIB_DIR)/parrot/library/$(HLLNAME).pbc
++ $(POD2MAN) squaak.pir > $(DESTDIR)$(MANDIR)/man1/parrot-$(HLLNAME).1
++ $(MKPATH) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++ $(CP) $(DOCS) $(DESTDIR)$(DOC_DIR)/languages/$(HLLNAME)
++
++installable : installable_$(HLLNAME)@exe@ $(HLLNAME).pbc
++ $(CP) installable_$(HLLNAME)@exe@ $(BUILD_DIR)
++ $(CP) $(HLLNAME).pbc $(PARROT_LIB)/$(HLLNAME).pbc
++
++installable_$(HLLNAME)@exe@ : $(HLLNAME).pbc
++ $(PBC_TO_EXE) $(HLLNAME).pbc --install
+
+ # regenerate the Makefile
+ Makefile: config/makefiles/root.in
+- cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=squaak
++ cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=$(HLLNAME)
+
+ # This is a listing of all targets, that are meant to be called by users
+ help:
+ @echo ""
+ @echo "Following targets are available for the user:"
+ @echo ""
+- @echo " all: squaak.pbc"
++ @echo " build: squaak.pbc"
+ @echo " This is the default."
++ @echo " all: squaak.pbc squaak.exe installable"
++ @echo " installable: Create self-hosting bins and libs."
++ @echo " install: Install the installable targets and docs."
++ @echo ""
+ @echo "Testing:"
+ @echo " test: Run the test suite."
+ @echo " testclean: Clean up test results."
+@@ -103,17 +138,7 @@
+ src/gen_grammar.pir \
+ src/gen_actions.pir \
+ src/gen_builtins.pir \
+- $(PMC_DIR)/*.h \
+- $(PMC_DIR)/*.c \
+- $(PMC_DIR)/*.dump \
+- $(PMC_DIR)/*$(O) \
+- $(PMC_DIR)/*$(LOAD_EXT) \
+- $(PMC_DIR)/*.exp \
+- $(PMC_DIR)/*.ilk \
+- $(PMC_DIR)/*.manifest \
+- $(PMC_DIR)/*.pdb \
+- $(PMC_DIR)/*.lib \
+-
++ $(PARROT_LIB)/$(HLLNAME).pbc $(HLLNAME)@exe@ installable_*
+
+ clean:
+ $(RM_RF) $(CLEANUPS)
+@@ -124,3 +149,8 @@
+ distclean: realclean
+
+
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/languages/t/harness 2008-10-08 22:16:21.000000000 +0000
++++ src/parrot-0.8.2/languages/t/harness 2008-12-25 13:44:22.287750000 +0000
+@@ -79,6 +79,7 @@
+ # ecmascript No t/harness
+ # eclectus
+ # forth No t/harness
++# jvm not yet functional
+ # perl6 test scripts are written in Perl 6, not Perl 5
+ # pheme test scripts are written in Scheme, not Perl 5
+ # PIR many test failures
+--- origsrc/parrot-0.8.2/languages/unlambda/config/makefiles/root.in 2008-06-23 02:30:45.000000000 +0000
++++ src/parrot-0.8.2/languages/unlambda/config/makefiles/root.in 2008-12-28 17:09:58.974750000 +0000
+@@ -1,36 +1,65 @@
+ # Copyright (C) 2008, The Perl Foundation.
+-# $Id: /mirror/trunk/languages/unlambda/config/makefiles/root.in 28688 2008-06-23T00:33:41.905243Z coke $
++# $Id: root.in 34502 2008-12-28 17:09:53Z rurban $
+
+ # Makefile for languages/unlambda
+
+ # configuration settings
+-BUILD_DIR = @build_dir@
++HLLNAME = unlambda
++BUILD_DIR = @build_dir@
++LOAD_EXT = @load_ext@
++O = @o@
++BIN_DIR = @bin_dir@
++LIB_DIR = @lib_dir@
++DOC_DIR = @doc_dir@
++MANDIR = @mandir@
+
+ # Set up commands
+-PERL = @perl@
+-RM_F = @rm_f@
+-RECONFIGURE = $(PERL) @build_dir@/tools/dev/reconfigure.pl
+-#CONDITIONED_LINE(darwin):
+-#CONDITIONED_LINE(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
+-#CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++PERL = @perl@
++RM_F = @rm_f@
++CP = @cp@
++MKPATH = @mkpath@
++#IF(has_pod2man):POD2MAN = pod2man
++
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
++#IF(darwin):export DYLD_LIBRARY_PATH := @blib_dir@:$(DYLD_LIBRARY_PATH)
++PARROT = ../../parrot@exe@
++PBC_TO_EXE = ../../pbc_to_exe@exe@
++RECONFIGURE = $(PERL) $(BUILD_DIR)/tools/dev/reconfigure.pl
++#IF(darwin):
++#IF(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
++#IF(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++
++## places to look for things
++PARROT_LIB = $(BUILD_DIR)/runtime/parrot/library
++
++DOCS = MAINTAINER README
+
+ # The default target
+-default: build
++build : $(HLLNAME).pbc
++
++all : $(HLLNAME).pbc $(HLLNAME)@exe@ Makefile installable
+
+ help :
+ @echo ""
+ @echo "Following targets are available for the user:"
+ @echo ""
+- @echo " build: does nothing."
++ @echo " build: unlambda.pbc"
+ @echo " This is the default target."
++ @echo " all: unlambda.pbc unlambda@exe@ installable"
++ @echo " installable: Create self-hosting bins and libs."
++ @echo " install: Install the installable targets and docs."
+ @echo ""
++ @echo "Testing:"
+ @echo " test: Run the test suite."
++ @echo " testclean: Clean up test results."
+ @echo ""
++ @echo "Cleaning:"
+ @echo " clean: Clean up temporary files."
+- @echo ""
+ @echo " realclean: Clean up generated files."
+ @echo ""
++ @echo "Misc:"
+ @echo " help: Print this help message."
++ @echo ""
+
+ # regenerate the Makefile
+ Makefile: config/makefiles/root.in
+@@ -40,14 +69,51 @@
+ build:
+ @echo "nothing to do"
+
+-# cleaning up
++$(HLLNAME).pbc: unl.pir
++ $(PARROT) $(PARROT_ARGS) -o $@ unl.pir
+
+-clean:
+- @echo "nothing to do"
++$(HLLNAME)@exe@ : $(HLLNAME).pbc
++ $(PBC_TO_EXE) $(HLLNAME).pbc
+
+-realclean: clean
+- $(RM_F) Makefile
++installable : installable_$(HLLNAME)@exe@ $(HLLNAME).pbc
++ $(CP) installable_$(HLLNAME)@exe@ $(BUILD_DIR)
++ $(CP) $(HLLNAME).pbc $(PARROT_LIB)/$(HLLNAME).pbc
++
++installable_unlambda@exe@: $(HLLNAME).pbc
++ $(PBC_TO_EXE) $(HLLNAME).pbc --install
++
++# TODO: test for installed libs, rename build_dir. basic run for missing libs
++test-installable : installable
++ ./installable_$(HLLNAME)@exe@ examples/h.unl
++
++install : installable
++ $(CP) installable_$(HLLNAME)@exe@ $(DESTDIR)$(BIN_DIR)/parrot-unlambda@exe@
++ $(CP) $(HLLNAME).pbc $(DESTDIR)$(LIB_DIR)/parrot/library/$(HLLNAME).pbc
++#IF(has_pod2man): $(POD2MAN) $(HLLNAME).pir > $(DESTDIR)$(MANDIR)/man1/parrot-unlambda.1
++ $(MKPATH) $(DESTDIR)$(DOC_DIR)/languages/unlambda
++ $(CP) $(DOCS) $(DESTDIR)$(DOC_DIR)/languages/unlambda
+
+ # testing
+ test: build
+ $(PERL) t/harness
++
++# cleaning up
++CLEANUPS = \
++ $(HLLNAME).pbc \
++ $(HLLNAME)@exe@ \
++ installable_$(HLLNAME)@exe@ \
++ $(PARROT_LIB)/$(HLLNAME).pbc
++
++clean:
++ $(RM_F) $(CLEANUPS)
++
++testclean: clean
++
++realclean: clean
++ $(RM_F) Makefile
++
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/languages/urm/config/makefiles/root.in 2008-06-23 02:30:46.000000000 +0000
++++ src/parrot-0.8.2/languages/urm/config/makefiles/root.in 2008-12-25 13:44:22.334625000 +0000
+@@ -5,30 +5,46 @@
+ # Setup of some commands
+ RM_F = @rm_f@
+ PERL = @perl@
+-PARROT = ../../parrot@exe@
++CP = @cp@
+ BUILD_DIR = @build_dir@
++BIN_DIR = @bin_dir@
++DOC_DIR = @doc_dir@
++MANDIR = @mandir@
++
++#IF(parrot_is_shared and !(cygwin|win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
++PARROT = ../../parrot@exe@
++PBC_TO_EXE = ../../pbc_to_exe@exe@
+ RECONFIGURE = $(PERL) @build_dir@/tools/dev/reconfigure.pl
+-#CONDITIONED_LINE(darwin):
+-#CONDITIONED_LINE(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
+-#CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++#IF(darwin):
++#IF(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
++#IF(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
+
+-default: build
++default: all
+
+ help :
+ @echo ""
+ @echo "Following targets are available for the user:"
+ @echo ""
++ @echo " all: This is the default."
+ @echo " build: Just check whether 'urmc' compiles"
+- @echo " This is the default."
++ @echo " installable: Create self-hosting bins and libs."
++ @echo " install: Install the installable targets and docs."
+ @echo ""
+- @echo " test: run the test suite,"
+- @echo ""
+- @echo " clean: clean up temporary files"
+- @echo ""
+- @echo " realclean: clean up generated files"
++ @echo "Testing:"
++ @echo " test: Run the test suite."
++ @echo " test-installable: Test self-hosting targets."
++ @echo " testclean: Clean up test results."
++ @echo ""
++ @echo "Cleaning:"
++ @echo " clean: Basic cleaning up."
++ @echo " realclean: Removes also files generated by 'Configure.pl'"
++ @echo " distclean: Removes also anything built, in theory"
+ @echo ""
++ @echo "Misc:"
+ @echo " help: print this help message"
+
++all: build
++
+ # regenerate the Makefile
+ Makefile: config/makefiles/root.in
+ cd $(BUILD_DIR) && $(RECONFIGURE) --step=gen::languages --languages=urm
+@@ -47,6 +63,14 @@
+ build:
+ $(PERL) -c urmc
+
++# TODO: rename build_dir. basic run for missing libs
++test-installable : test
++
++install : build
++ $(CP) urmc $(DESTDIR)$(BIN_DIR)/parrot-urmc
++
++installable: build
++
+ clean:
+ $(RM_F) \
+ core "*.pbc" "*~" "foo.p*" \
+@@ -60,4 +84,11 @@
+
+ realclean: clean
+ $(RM_F) Makefile
+-
++
++distclean: clean realclean
++
++#
++# Local variables:
++# mode: makefile
++# ex: ft=make
++# End:
+--- origsrc/parrot-0.8.2/lib/Parrot/Configure/Compiler.pm 2008-12-17 06:55:04.000000000 +0000
++++ src/parrot-0.8.2/lib/Parrot/Configure/Compiler.pm 2008-12-27 19:21:11.209125000 +0000
+@@ -33,6 +33,7 @@
+ _run_command _build_compile_command
+ move_if_diff
+ );
++my $DEBUG;
+
+ our %file_types_info = (
+ makefile => {
+@@ -210,17 +211,62 @@
+ Its value will be detected automatically by target file name unless you set
+ it to a special value C<none>.
+
+-=item conditioned_lines
++=item conditioned_lines #IF #UNLESS #ELSIF #ELSE
+
+-If C<conditioned_lines> is true, then lines in the file that begin with:
+-C<#CONDITIONED_LINE(var):> are skipped if the C<var> condition is false. Lines
+-that begin with C<#INVERSE_CONDITIONED_LINE(var):> are skipped if
+-the C<var> condition is true. For instance:
++If conditioned_lines is true, then several expressions at the first column
++are evaluated and replaced by the content after the C<:> dependending on
++the evaluation of the expression.
++
++Lines beginning with C<#IF(expr):> are skipped if the expr
++condition is false, otherwise the content after the C<:> is inserted.
++Lines beginning with C<#UNLESS(expr):> are skipped if the expr condition
++is true, otherwise the content after the C<:> is inserted.
++Lines beginning with C<#ELSIF(expr):> or C<#ELSE:> are evaluated if the
++former C<#IF(expr):> evaluated to false.
++
++A condition expr may be:
++
++ * a single key, which is true if a config key is true
++ - not 0 and not undef and not an empty string,
++ * or equal to the platform name, the osname - case-sensitive,
++ * or a C<key==value> expression, which checks for the config key,
++ Note that values may contain no spaces here. Quotes in values
++ are not supported.
++ * or a logical combination of C<|>, C<OR>, C<&>, C<AND>, C<!>, C<NOT>,
++ The verbose ops AND, OR and NOT are case-insensitive.
++ ! and NOT bind closer than &, AND and |, OR.
++ The order of precedence for AND and OR is undefined.
+
+- #CONDITIONED_LINE(win32): $(SRC_DIR)/atomic/gcc_x86$(O)
++A key must only consist of the chars A-Z a-z 0-9 _ -, and is checked
++case-sensitively against the config key or the platform name.
++
++For instance:
++
++ #IF(win32): $(SRC_DIR)/atomic/gcc_x86$(O)
+
+ will be processed if the platform is win32.
+
++ #IF(cpuarch==i386): $(SRC_DIR)/atomic/gcc_x86$(O)
++
++will be skipped if the value of the config key "cpuarch" is not "i386".
++
++ #IF(cpuarch==i386): $(SRC_DIR)/atomic/gcc_x86$(O)
++ #ELSIF(cpuarch==sparcv9): $(SRC_DIR)/atomic/sparc_v9.s
++ #ELSE:
++
++will use " $(SRC_DIR)/atomic/gcc_x86$(O)" on cpuarch "i386",
++" $(SRC_DIR)/atomic/sparc_v9.s" on cpuarch "sparcv9"
++and print an empty line otherwise.
++
++ #IF(win32 and glut and not cygwin):
++
++will be used on win32 and if glut is defined, but not on cygwin.
++
++B<Legacy Syntax:>
++
++The old syntax #CONDITIONED_LINE(var): and
++#INVERSE_CONDITIONED_LINE(var): is still supported, but is deprecated.
++
+ =item comment_type
+
+ This option takes has two possible values, C<#> or C</*>. If present and
+@@ -294,6 +340,7 @@
+
+ open my $in, '<', $source or die "Can't open $source: $!";
+ open my $out, '>', "$target.tmp" or die "Can't open $target.tmp: $!";
++ $DEBUG++ if $ENV{TEST_VERBOSE};
+
+ if ( !exists $options{file_type}) {
+ if ( $target =~ m/makefile$/i ) {
+@@ -360,6 +407,8 @@
+ # this loop can not be implemented as a foreach loop as the body
+ # is dependent on <IN> being evaluated lazily
+
++ my $former_truth = 99;
++ LINE:
+ while ( my $line = <$in> ) {
+
+ # everything after the line starting with #perl is eval'ed
+@@ -376,16 +425,46 @@
+ $text =~ s{ \@ (\w+) \@ }{\$conf->data->get("$1")}gx;
+ eval $text;
+ die $@ if $@;
+- last;
++ last LINE;
+ }
+ if ( $options{conditioned_lines} ) {
+- if ( $line =~ m/^#CONDITIONED_LINE\(([^)]+)\):(.*)/s ) {
+- next unless $conf->data->get($1);
+- $line = $2;
+- }
+- elsif ( $line =~ m/^#INVERSE_CONDITIONED_LINE\(([^)]+)\):(.*)/s ) {
+- next if $conf->data->get($1);
+- $line = $2;
++ my ($op, $expr, $rest);
++ # allow multiple keys and nested parens here
++ if (($op,$expr,$rest)=($line =~ m/^#(IF|UNLESS|ELSIF)\((.+)\):(.*)/s)) {
++ if (($op eq 'ELSIF') and $former_truth) {
++ next LINE; # no useless check if former IF was true
++ }
++ my $truth = cond_eval($conf, $expr);
++ if ($op eq 'IF') {
++ $former_truth = $truth;
++ next LINE unless $truth;
++ }
++ elsif ($op eq 'UNLESS') {
++ $former_truth = !$truth;
++ next LINE if $truth;
++ }
++ elsif ($op eq 'ELSIF') {
++ $former_truth = $truth;
++ next LINE unless $truth;
++ }
++ $line = $rest;
++ }
++ elsif ( $former_truth != 99 and $line =~ m/^#ELSE:(.*)/s ) {
++ next LINE if $former_truth;
++ $line = $1;
++ }
++ # Legacy, DEPRECATED.
++ elsif (($expr,$rest)=($line =~ m/^#CONDITIONED_LINE\(([^)]+)\):(.*)/s)) {
++ next LINE unless cond_eval($conf, $expr);
++ $line = $rest;
++ }
++ elsif (($expr,$rest)=($line =~ m/^#INVERSE_CONDITIONED_LINE\(([^)]+)\):(.*)/s )) {
++ next LINE if cond_eval($conf, $expr);
++ $line = $rest;
++ }
++
++ else { # reset
++ $former_truth = 99; # ELSE must immediately follow a conditional.
+ }
+ }
+
+@@ -485,6 +564,131 @@
+ move_if_diff( "$target.tmp", $target, $options{ignore_pattern} );
+ }
+
++# Return the next subexpression from the expression in $_[0]
++# and remove it from the input expression.
++# Allowed chars: A-Z a-z 0-9 _ -, so let's take [-\w].
++# E.g. "(not win32 and has_glut)"
++# => not win32 => has_glut
++# "(!win32&has_glut)|cygwin" - perl-style
++# !win32&has_glut => !win32 => &has_glut => |cygwin
++sub next_expr {
++ my $s = $_[0];
++ return "" unless $s;
++ # start of a subexpression?
++ if ($s =~ /^\((.+)\)\s*(.*)/o) { # longest match to matching closing paren
++ $_[0] = $2 ? $2 : ""; # modify the 2nd arg
++ print "#** nextsub \"$s\" => (\"$1\",\"$_[0]\")\n" if $DEBUG;
++ return $1;
++ }
++ else {
++ $s =~ s/^\s+//; # left-trim to make it more robust
++ if ($s =~ m/^([-\w=]+)\s*(.*)?/o) { # shortest match to next non-word char
++ # start with word expr
++ $_[0] = $2 ? $2 : ""; # modify the 2nd arg expr in the caller
++ print "#** nextexpr \"$s\" => (\"$1\",\"$_[0]\")\n" if $DEBUG;
++ return $1;
++ }
++ else {
++ # special case: start with non-word op (perl-syntax only)
++ $s =~ m/^([|&!])\s*(.*)?/o; # shortest match to next word char
++ $_[0] = $2 ? $2 : ""; # modify the 2nd arg expr in the caller
++ print "#** nextop \"$s\" => (\"$1\",\"$_[0]\")\n" if $DEBUG;
++ return $1;
++ }
++ }
++}
++
++# Checks the logical truth of the hash value: exists and not empty.
++# Also check the platform name, the 'osname' key, if the hash key does not exist.
++# Also check for key==value, like #IF(ld==gcc)
++sub cond_eval_single {
++ my $conf = $_[0];
++ my $key = $_[1];
++ return unless defined $key;
++ if ($key =~ /^([-\w]+)==(.+)$/) {
++ return ($2 eq $conf->data->get($1));
++ }
++ else {
++ return exists($conf->data->{c}->{$key})
++ ? ($conf->data()->get($key) ? 1 : 0)
++ : $key eq $conf->data()->get('osname');
++ }
++}
++
++sub truth { $_[0] ? "true" : "false"; }
++
++# Recursively evaluate boolean expressions with multiple keys and | & ! ops.
++# Order of precedence: Just "!" and "NOT" binds tighter than AND and OR.
++# There's no precedence for AND over OR defined, just left to right.
++sub cond_eval {
++ my $conf = $_[0];
++ my $expr = $_[1];
++ my @count = split /[\s!&|\(]+/, $expr; # optimizable with tr
++ if (@count > 1) { # multiple keys: recurse into
++ my $truth = 0;
++ my $prevtruth = 0;
++ my $key = next_expr($expr);
++ my $op = '';
++ LOOP:
++ while ($key) {
++ if (($key eq '!') or (uc($key) eq 'NOT')) {
++ # bind next key immediately
++ $op = 'NOT';
++ $key = next_expr($expr);
++ }
++ elsif ($truth and ($op eq 'OR')) {
++ # true OR: => true
++ print "#* => ",truth(1)," rest=\"$expr\" SKIP on true OR\n" if $DEBUG;
++ last LOOP;
++ }
++ print "#* truth=",truth($truth)," op=\"$op\" key=\"$key\"\n" if $DEBUG;
++ $prevtruth = $truth;
++ if (!$truth and ($op eq 'AND')) { # false AND: => false, skip rest
++ print "#* => ",truth(0)," rest=\"$expr\" SKIP already false\n" if $DEBUG;
++ last LOOP;
++ }
++ $truth = cond_eval($conf, $key);
++ if ($op eq 'NOT') { # NOT *: invert
++ $truth = $truth ? 0 : 1;
++ }
++ elsif ($op eq 'AND' and !$truth) { # * AND false: => false
++ print "#* => ",truth(0)," rest=\"$expr\" SKIP rest\n" if $DEBUG;
++ last LOOP;
++ }
++ # * OR false => * (keep $truth). true OR * already handled before
++ print "#* => ",truth($truth)," rest=\"$expr\"\n" if $DEBUG;
++ my $prevexpr = $expr;
++ $op = next_expr($expr);
++ if ($op) {
++ if ($op eq '|' or uc($op) eq 'OR') {
++ $op = 'OR';
++ }
++ elsif ($op eq '&' or uc($op) eq 'AND') {
++ $op = 'AND';
++ }
++ elsif ($op eq '!' or uc($op) eq 'NOT') {
++ $op = 'NOT';
++ }
++ else {
++ die "invalid op \"$op\" in \"$_[1]\" at \"$prevexpr\".\n";
++ }
++ $key = next_expr($expr);
++ }
++ elsif ($prevexpr) {
++ die "Makefile conditional syntax error: missing op in \"$_[1]\" at \"$prevexpr\".\n";
++ }
++ else {
++ last LOOP; # end of expr, nothing left
++ }
++ if ($prevexpr eq $expr) {
++ die "Makefile conditional parser error in \"$_[1]\" at \"$prevexpr\".\n";
++ }
++ }
++ return $truth;
++ }
++ cond_eval_single($conf, $expr);
++}
++
+ sub append_configure_log {
+ my $conf = shift;
+ my $target = shift;
+--- origsrc/parrot-0.8.2/lib/Parrot/Configure/Step/Methods.pm 2008-06-24 20:20:59.000000000 +0000
++++ src/parrot-0.8.2/lib/Parrot/Configure/Step/Methods.pm 2008-12-25 13:44:22.397125000 +0000
+@@ -119,6 +119,7 @@
+ cc => $cc,
+ win32_gcc => '-lalpha32 -lalpha32 -lopenalpha32',
+ win32_nongcc => 'alpha.lib',
++ cygwin => '-lalpha32 -lXalpha32', # optional
+ darwin => 'alphadarwin.lib',
+ default => '-lalpha',
+ } );
+@@ -138,6 +139,8 @@
+
+ =item * MSWin32 with any C-compiler other than F<gcc>.
+
++=item * Cygwin to override Mingw.
++
+ =item * Darwin.
+
+ =back
+@@ -173,7 +176,7 @@
+
+ =item * C<win32_gcc>
+
+-Libraries to be added where OS is mswin32 and C-compiler is F<gcc>.
++Libraries to be added where OS is mswin32 or cygwin and C-compiler is F<gcc>.
+ Single whitespace-delimited string.
+
+ =item * C<win32_nongcc>
+@@ -181,6 +184,12 @@
+ Libraries to be added where OS is mswin32 and C-compiler is not F<gcc>.
+ Single whitespace-delimited string.
+
++=item * C<cygwin>
++
++Optional libraries to be added where OS is cygwin. This overrides C<win32_gcc>
++if defined.
++Single whitespace-delimited string.
++
+ =item * C<darwin>
+
+ Libraries to be added where OS is Darwin. Do not supply a value if the value
+@@ -197,7 +206,8 @@
+ my $args = shift;
+ croak "_add_to_libs() takes hashref: $!" unless ref($args) eq 'HASH';
+ my $platform =
+- (($args->{osname} =~ /mswin32/i ||
++ $args->{osname} =~ /cygwin/i ? 'cygwin'
++ :(($args->{osname} =~ /mswin32/i ||
+ $args->{osname} =~ /cygwin/i) &&
+ $args->{cc} =~ /^gcc/i) ? 'win32_gcc'
+ : $args->{osname} =~ /mswin32/i ? 'win32_nongcc'
+--- origsrc/parrot-0.8.2/lib/Parrot/Configure.pm 2008-12-17 06:55:04.000000000 +0000
++++ src/parrot-0.8.2/lib/Parrot/Configure.pm 2008-12-25 13:44:22.412750000 +0000
+@@ -238,13 +238,8 @@
+ # We make certain that argument to --fatal-step is a comma-delimited
+ # string of configuration steps, each of which is a string delimited by
+ # two colons, the first half of which is one of init|inter|auto|gen
+-#<<<<<<< .working
+ elsif ( defined ( $fatal_step_str ) ) {
+ %steps_to_die_for = _handle_fatal_step_option( $fatal_step_str );
+-#=======
+-# elsif ( defined ( $fatal_step ) ) {
+-# %steps_to_die_for = $conf->_handle_fatal_step_option( $fatal_step );
+-#>>>>>>> .merge-right.r30499
+ }
+ else {
+ # No action needed; this is the default case where no step is fatal
+--- origsrc/parrot-0.8.2/runtime/parrot/include/test_more.pir 2008-12-17 06:54:59.000000000 +0000
++++ src/parrot-0.8.2/runtime/parrot/include/test_more.pir 2008-12-25 13:44:22.475250000 +0000
+@@ -14,7 +14,7 @@
+
+ =cut
+
+- load_bytecode 'runtime/parrot/library/Test/More.pbc'
++ load_bytecode 'Test/More.pbc'
+
+ # get the testing functions
+ .local pmc exports, curr_namespace, test_namespace
+--- origsrc/parrot-0.8.2/runtime/parrot/library/config.pir 2008-09-14 02:19:58.000000000 +0000
++++ src/parrot-0.8.2/runtime/parrot/library/config.pir 2008-12-28 12:20:52.115375000 +0000
+@@ -48,12 +48,28 @@
+ .sub _config
+ .local pmc CONF
+ .local string conf_file
++
++ # We should check if a linked frozen hash already exists
++ # and return that instead. See RT #57418
++ #$P0 = find_global '', '_config'
++ #unless $P0 goto runtime
++ #$P0 = _config()
++ #.return( $P0 )
++
++runtime:
++ # conf_file = locate_runtime_file_str(interp, "config.fpmc", 2)
+ conf_file = interpinfo .INTERPINFO_RUNTIME_PREFIX
+- conf_file .= "/runtime/parrot/include/config.fpmc"
++ conf_file .= "/lib/parrot/include/config.fpmc"
++ stat $I0, conf_file, 0
++ if $I0 goto conf
+
++ conf_file = interpinfo .INTERPINFO_RUNTIME_PREFIX
++ conf_file .= "/runtime/parrot/include/config.fpmc"
++conf:
+ open CONF, conf_file, "<"
+ $I0 = defined CONF
+ if $I0 goto ok1
++
+ printerr "Can't read '"
+ printerr conf_file
+ printerr "': "
+--- origsrc/parrot-0.8.2/runtime/parrot/library/parrotlib.pir 2008-12-17 06:55:00.000000000 +0000
++++ src/parrot-0.8.2/runtime/parrot/library/parrotlib.pir 2008-12-25 13:44:22.506500000 +0000
+@@ -24,14 +24,13 @@
+ .local pmc includes
+ .local string root
+
+-
+- # XXX todo: get root from config
+ $P0 = new 'Env'
+ root = $P0["PARROT_RUNTIME_ROOT"]
+ length $I0, root
+ if $I0 == 0 goto DEFAULT
+ branch OKAY
+ DEFAULT:
++ # lib/parrot on installed, or runtime
+ root = "runtime/parrot"
+ OKAY:
+
+@@ -138,13 +137,22 @@
+ stat $I0, name, 0
+ if $I0 goto END
+
+- name = "runtime/parrot/dynext/"
++ .include "interpinfo.pasm"
++ name = interpinfo .INTERPINFO_RUNTIME_PREFIX
++ concat name, "lib/parrot/dynext/"
+ concat name, request
+ stat $I0, name, 0
+ if $I0 goto END
+
++ concat name, ext
++ stat $I0, name, 0
++ if $I0 goto END
++
+ name = "runtime/parrot/dynext/"
+ concat name, request
++ stat $I0, name, 0
++ if $I0 goto END
++
+ concat name, ext
+ stat $I0, name, 0
+ if $I0 goto END
+--- origsrc/parrot-0.8.2/src/library.c 2008-12-17 06:55:02.000000000 +0000
++++ src/parrot-0.8.2/src/library.c 2008-12-25 13:44:22.569000000 +0000
+@@ -121,64 +121,111 @@
+ Platform code may add, delete, or replace search path entries as needed. See
+ also F<include/parrot/library.h> for C<enum_lib_paths>.
+
++#ifdef ENABLE_PARROT_LIBRARY_INSTALLED
++then the config hash is checked for the path prefix. This still crashes.
++
+ =cut
+
+ */
+
++#undef ENABLE_PARROT_LIBRARY_INSTALLED
++
+ void
+ parrot_init_library_paths(PARROT_INTERP)
+ {
+ PMC *paths;
+ STRING *entry;
++ INTVAL installed = 0;
+
+ PMC * const iglobals = interp->iglobals;
+ /* create the lib_paths array */
+ PMC * const lib_paths = pmc_new(interp, enum_class_FixedPMCArray);
++#ifdef ENABLE_PARROT_LIBRARY_INSTALLED
++ PMC * const config_hash = VTABLE_get_pmc_keyed_int(interp, iglobals, IGLOBALS_CONFIG_HASH);
++ STRING * const key = CONST_STRING(interp, "installed");
++#endif
+
+ VTABLE_set_integer_native(interp, lib_paths, PARROT_LIB_PATH_SIZE);
+ VTABLE_set_pmc_keyed_int(interp, iglobals,
+ IGLOBALS_LIB_PATHS, lib_paths);
++#ifdef ENABLE_PARROT_LIBRARY_INSTALLED
++ if (VTABLE_elements(interp, config_hash) &&
++ VTABLE_exists_keyed_str(interp, config_hash, key))) {
++ installed = VTABLE_get_integer_keyed_str(interp, config_hash, key);
++ }
++#endif
++
+ /* each is an array of strings */
+ /* define include paths */
+ paths = pmc_new(interp, enum_class_ResizableStringArray);
+ VTABLE_set_pmc_keyed_int(interp, lib_paths,
+ PARROT_LIB_PATH_INCLUDE, paths);
+- entry = CONST_STRING(interp, "runtime/parrot/include/");
+- VTABLE_push_string(interp, paths, entry);
+- entry = CONST_STRING(interp, "runtime/parrot/");
+- VTABLE_push_string(interp, paths, entry);
++#ifdef ENABLE_PARROT_LIBRARY_INSTALLED
++ if (installed) {
++#endif
++ entry = CONST_STRING(interp, "lib/parrot/include/");
++ VTABLE_push_string(interp, paths, entry);
++ entry = CONST_STRING(interp, "lib/parrot/");
++ VTABLE_push_string(interp, paths, entry);
++#ifdef ENABLE_PARROT_LIBRARY_INSTALLED
++ }
++ else {
++#endif
++ entry = CONST_STRING(interp, "runtime/parrot/include/");
++ VTABLE_push_string(interp, paths, entry);
++ entry = CONST_STRING(interp, "runtime/parrot/");
++ VTABLE_push_string(interp, paths, entry);
++#ifdef ENABLE_PARROT_LIBRARY_INSTALLED
++ }
++#endif
+ entry = CONST_STRING(interp, "./");
+ VTABLE_push_string(interp, paths, entry);
+- entry = CONST_STRING(interp, "lib/parrot/include/");
+- VTABLE_push_string(interp, paths, entry);
+- entry = CONST_STRING(interp, "lib/parrot/");
+- VTABLE_push_string(interp, paths, entry);
+
+ /* define library paths */
+ paths = pmc_new(interp, enum_class_ResizableStringArray);
+ VTABLE_set_pmc_keyed_int(interp, lib_paths,
+ PARROT_LIB_PATH_LIBRARY, paths);
+- entry = CONST_STRING(interp, "runtime/parrot/library/");
+- VTABLE_push_string(interp, paths, entry);
+- entry = CONST_STRING(interp, "runtime/parrot/");
+- VTABLE_push_string(interp, paths, entry);
++#ifdef ENABLE_PARROT_LIBRARY_INSTALLED
++ if (installed) {
++#endif
++ entry = CONST_STRING(interp, "lib/parrot/library/");
++ VTABLE_push_string(interp, paths, entry);
++ entry = CONST_STRING(interp, "lib/parrot/");
++ VTABLE_push_string(interp, paths, entry);
++#ifdef ENABLE_PARROT_LIBRARY_INSTALLED
++ }
++ else {
++#endif
++ entry = CONST_STRING(interp, "runtime/parrot/library/");
++ VTABLE_push_string(interp, paths, entry);
++ entry = CONST_STRING(interp, "runtime/parrot/");
++ VTABLE_push_string(interp, paths, entry);
++#ifdef ENABLE_PARROT_LIBRARY_INSTALLED
++ }
++#endif
+ entry = CONST_STRING(interp, "./");
+ VTABLE_push_string(interp, paths, entry);
+- entry = CONST_STRING(interp, "lib/parrot/library/");
+- VTABLE_push_string(interp, paths, entry);
+- entry = CONST_STRING(interp, "lib/parrot/");
+- VTABLE_push_string(interp, paths, entry);
+
+ /* define dynext paths */
+ paths = pmc_new(interp, enum_class_ResizableStringArray);
+ VTABLE_set_pmc_keyed_int(interp, lib_paths,
+ PARROT_LIB_PATH_DYNEXT, paths);
+- entry = CONST_STRING(interp, "runtime/parrot/dynext/");
+- VTABLE_push_string(interp, paths, entry);
++#ifdef ENABLE_PARROT_LIBRARY_INSTALLED
++ if (installed) {
++#endif
++ entry = CONST_STRING(interp, "lib/parrot/dynext/");
++ VTABLE_push_string(interp, paths, entry);
++#ifdef ENABLE_PARROT_LIBRARY_INSTALLED
++ }
++ else {
++#endif
++ entry = CONST_STRING(interp, "runtime/parrot/dynext/");
++ VTABLE_push_string(interp, paths, entry);
++#ifdef ENABLE_PARROT_LIBRARY_INSTALLED
++ }
++#endif
+ entry = CONST_STRING(interp, "");
+ VTABLE_push_string(interp, paths, entry);
+- entry = CONST_STRING(interp, "lib/parrot/dynext/");
+- VTABLE_push_string(interp, paths, entry);
+
+ /* shared exts */
+ paths = pmc_new(interp, enum_class_ResizableStringArray);
+@@ -452,7 +499,7 @@
+
+ =item C<static STRING* try_bytecode_extensions>
+
+-Guess extensions, so that the user can drop the extensions
++guess extensions, so that the user can drop the extensions
+ leaving it up to the build process/install whether or not
+ a .pbc, .pasm or a .pir file is used.
+
+@@ -470,7 +517,7 @@
+ int guess;
+
+ /*
+- First try the path without guessing the extension to ensure compatibility
++ first try the path without guessing the extension to ensure compatibility
+ with existing code.
+ */
+
+@@ -481,8 +528,8 @@
+ return result;
+
+ /*
+- Start guessing now. This version tries to find the lowest form of the
+- code, starting with bytecode and working up to PIR. Note the atypical
++ start guessing now. this version tries to find the lowest form of the
++ code, starting with bytecode and working up to PIR. note the atypical
+ loop control. This is so the array can easily be processed in reverse.
+ */
+
+--- origsrc/parrot-0.8.2/t/library/pg.t 2008-12-17 06:55:11.000000000 +0000
++++ src/parrot-0.8.2/t/library/pg.t 2008-12-25 15:55:49.178375000 +0000
+@@ -242,7 +242,8 @@
+ test.'ok'(1, 'notice receiver called')
+ # res ought to be a PGresult struct
+ $S0 = typeof res
+- test.'is'($S0, 'UnManagedStruct', 'notice callback got a struct')
++ $I0 = $S0 == 'UnManagedStruct'
++ test.'ok'($I0, 'notice callback got a struct')
+
+ .local pmc st
+ st = get_root_global ['parrot';'Pg'], 'PQresultStatus'
+--- origsrc/parrot-0.8.2/t/steps/gen_makefiles-01.t 2008-10-20 03:11:18.000000000 +0000
++++ src/parrot-0.8.2/t/steps/gen_makefiles-01.t 2008-12-25 13:44:22.678375000 +0000
+@@ -5,9 +5,80 @@
+
+ use strict;
+ use warnings;
+-use Test::More tests => 7;
++my @cond_tests;
++my @conf_args = ( true => 1, false => 0, value => 'xx' );
++BEGIN {
++ @cond_tests =
++ (
++ # perl-syntax true or false
++ ["IF(true)", 1],
++ ["IF(false)", 0],
++ ["UNLESS(true)", 0],
++ ["UNLESS(false)", 1],
++ ["IF(true | false)", 1],
++ ["IF(true & false)", 0],
++ ["IF(true or true)", 1],
++ ["IF(true or false)", 1],
++ ["IF(false or true)", 1],
++ ["IF(false or false)", 0],
++ ["IF(true and true)", 1],
++ ["IF(true and false)", 0],
++ ["IF(false and true)", 0],
++ ["IF(false and false)", 0],
++ ["UNLESS(true|false)", 0],
++ ["UNLESS(true&false)", 1],
++ ["IF(!false)", 1],
++ ["IF(true)", 1],
++ ["ELSIF(value)", 0],
++ ["ELSE", 0],
++ ["IF(false)", 0],
++ ["ELSIF(value)", 1],
++ ["ELSE", 0],
++ ["IF(false)", 0],
++ ["ELSIF(false)", 0],
++ ["ELSE", 1],
++ # Strangle the parser a bit
++ ["IF(true and (!false and value))", 1],
++ ["IF(true and (!false) and value)", 1],
++ ["IF(true and !false and value)", 1, 'no parens'],
++ ["IF(true and not false and value)", 1, 'no parens'],
++ ["IF(true&!false&value)", 1],
++ ["IF(false or (!false and value))", 1, 'not parser problem'],
++ ["UNLESS(!(true&!false&value))", 1, 'no ws, but nested parens'],
++ ["IF(true&(!false&false))", 0, 'not precedence'],
++ ["IF(true&(!false&value))", 1],
++ ["IF(not true and value)", 0, 'not precedence over and'],
++ ["IF(not false and value)", 1],
++ ["IF((not false) and value)", 1],
++ ["IF(not (false and value))", 1],
++ ["IF(not (false or value))", 0],
++ ["IF(true and not false)", 1],
++ # platform
++ ["IF(someplatform)", 1],
++ ["IF(not someplatform)", 0],
++ ["UNLESS(someplatform)", 0],
++ ["UNLESS(not someplatform)", 1],
++ # key==value
++ ["IF(value==xx)", 1],
++ ["IF(value==xxy)", 0],
++ ["UNLESS(value==xx)", 0],
++ ["UNLESS(value==xxy)", 1],
++ ["IF(true & (value==xx & (!false)))",1],
++ # These are invalid:
++ #["IF(value == xx)", 0], # invalid op error
++ #["IF(value = xx)", 0], # invalid op error
++ ["IF(value=xx)", 0], # also invalid, no warning. checks for key value=xx
++
++ # Legacy syntax true or false
++ ["CONDITIONED_LINE(true)", 1],
++ ["INVERSE_CONDITIONED_LINE(true)", 0],
++ ["CONDITIONED_LINE(false)", 0],
++ ["INVERSE_CONDITIONED_LINE(false)", 1],
++ );
++}
++use Test::More tests => (7 + scalar(@cond_tests));
+ use Carp;
+-use lib qw( lib );
++use lib qw( . lib );
+ use_ok('config::gen::makefiles');
+ use Parrot::Configure;
+ use Parrot::Configure::Options qw( process_options );
+@@ -38,6 +109,52 @@
+ is($missing_SOURCE, 0, "No Makefile source file missing");
+ ok(-f $step->{CFLAGS_source}, "CFLAGS source file located");
+
++my $i = undef;
++sub result {
++ my $c = shift;
++ my $s = $c->[0];
++ $s =~ s/^\+/plus_/;
++ $s =~ s/^\-/minus_/;
++ $s =~ s/\|/OR/g;
++ $s =~ s/\&/AND/g;
++ $s =~ s/\!/NOT/g;
++ $s =~ s/[\()]//g;
++ $s =~ s/ /_/g;
++ $s .= ("_".++$i) if $s =~ /^(ELSE|ELSIF)/;
++ return $s."=".($c->[1]?"true":"false");
++}
++# test #+(keys):line RT #57548
++$conf->data->set( @conf_args, ('osname' => 'someplatform' ) );
++open IN, ">", "Makefile_$$.in";
++print IN "# There should only be =true results in .out\n";
++for my $c (@cond_tests) {
++ my $result = result($c);
++ print IN "#$c->[0]:$result\n";
++}
++close IN;
++$conf->genfile("Makefile_$$.in", "Makefile_$$.out",
++ (makefile => 1, conditioned_lines => 1));
++open OUT, "<", "Makefile_$$.out";
++my $f;
++{
++ local $/;
++ $f = <OUT>;
++}
++END {
++ unlink "Makefile_$$.in", "Makefile_$$.out";
++}
++$i = undef;
++for my $c (@cond_tests) {
++ my $result = result($c);
++ if ($c->[2] and $c->[2] =~ /^TODO(.*)$/) {
++ local $TODO = $1;
++ ok(($c->[1] ? $f =~ /^$result$/m : $f !~ /^$result$/m), "$result");
++ }
++ else {
++ ok(($c->[1] ? $f =~ /^$result$/m : $f !~ /^$result$/m), "$result".($c->[2]?" $c->[2]":''));
++ }
++}
++
+ pass("Completed all tests in $0");
+
+ ################### DOCUMENTATION ###################
+@@ -60,6 +177,8 @@
+
+ James E Keenan
+
++Reini Urban (#+, #-)
++
+ =head1 SEE ALSO
+
+ config::gen::makefiles, F<Configure.pl>.
+--- origsrc/parrot-0.8.2/t/tools/dump_pbc.t 2008-10-20 03:11:18.000000000 +0000
++++ src/parrot-0.8.2/t/tools/dump_pbc.t 2008-12-28 12:37:59.584125000 +0000
+@@ -1,6 +1,6 @@
+ #! perl
+ # Copyright (C) 2008, The Perl Foundation.
+-# $Id: /mirror/trunk/t/tools/dump_pbc.t 28046 2008-06-02T20:16:19.945499Z bernhard $
++# $Id: dump_pbc.t 28039 2008-06-02 20:16:19Z bernhard $
+
+ =head1 NAME
+
+--- origsrc/parrot-0.8.2/t/tools/parrot_config.t 1970-01-01 00:00:00.000000000 +0000
++++ src/parrot-0.8.2/t/tools/parrot_config.t 2008-12-29 16:14:57.349750000 +0000
+@@ -0,0 +1,125 @@
++#! perl
++# Copyright (C) 2008, The Perl Foundation.
++# $Id: parrot_config.t 30553 2008-08-26 01:31:47Z chromatic $
++
++=head1 NAME
++
++t/tools/parrot_config.t - test parrot_config and installable-parrot_config
++
++=head1 SYNOPSIS
++
++ % prove t/tools/parrot_config.t
++
++=head1 DESCRIPTION
++
++Tests the C<parrot_config> and C<installable_parrot_config> tools by
++comparing some options to the config hash. Esp. the installable logic.
++
++=head1 REQUIREMENTS
++
++This test script requires you to build parrot_config and the installables,
++by using "make parrot_utils" and "make installables" (using a suitable
++make tool for your platform).
++If this requirement has not been met, some tests will be skipped.
++
++=cut
++
++use strict;
++use warnings;
++use lib qw(lib);
++
++use Test::More;
++use IO::File;
++use Parrot::Config;
++use File::Spec;
++
++my ($path_to_cfg, $path_to_parrot, $builddir);
++
++BEGIN {
++ $builddir = $PConfig{build_dir};
++ $path_to_cfg = File::Spec->catfile( $builddir, "parrot_config");
++ $path_to_parrot = File::Spec->catfile( $builddir, "parrot" . $PConfig{exe});
++ unless ( -f $path_to_parrot ) {
++ plan skip_all => "parrot hasn't been built. Run make";
++ exit(0);
++ }
++ my $exefile = $path_to_cfg . $PConfig{exe};
++ unless ( -f $exefile ) {
++ plan skip_all => "parrot_config hasn't been built. Run make parrot_utils";
++ exit(0);
++ }
++ plan tests => 5;
++}
++
++my $tests = 0;
++my $prefix = $PConfig{prefix};
++
++output_eq( $path_to_parrot, File::Spec->catfile( $builddir, "parrot_config.pbc") . " prefix",
++ $builddir, "./parrot parrot_config.pbc prefix => build_dir");
++output_eq( $path_to_cfg, "prefix",
++ $builddir, "./parrot_config prefix => build_dir");
++output_eq( $path_to_cfg, "installed",
++ "0", "./parrot_config installed => 0");
++
++my $path_to_inst = File::Spec->catfile( $builddir, "installable_parrot_config" );
++my $exefile = $path_to_inst . $PConfig{exe};
++SKIP: {
++ skip "installable_parrot_config hasn't been built. Run make installable", 2 unless -f $exefile;
++ output_eq( $exefile, "prefix",
++ $prefix, "./installable_parrot_config prefix => prefix");
++ output_eq( $exefile, "installed",
++ "1", "./installable_parrot_config installed => 1");
++}
++
++=head1 HELPER SUBROUTINES
++
++=head2 output_like
++
++ output_eq($path_to_cfg, "prefix",
++ "/usr/local", "$path_to_cfg prefix => /usr/local");
++
++Takes 3-4 arguments: a program to run, the arguments,
++a regex string to match the the output,
++and the optional test diagnostic.
++
++=cut
++
++my $testno = 0;
++
++sub output_eq {
++ my ( $prog, $args, $check, $diag ) = @_;
++ $testno++;
++ my $stdoutfn = "$0.$testno.stdout";
++ system("$prog $args >$stdoutfn 2>&1");
++ my $f = IO::File->new($stdoutfn);
++
++ my $output = join( '', <$f> );
++ $output =~ s/^\s+//g;
++ $output =~ s/\s+$//g;
++
++ local $Test::Builder::Level = $Test::Builder::Level + 1;
++ $f->close;
++ unlink ($stdoutfn);
++ is( $output, $check, $diag );
++}
++
++=head1 TODO
++
++=over 4
++
++=item
++
++Flesh it out.
++This is a bare bones proof of concept just to check the --install logic.
++Add tests for all of the commands.
++
++=back
++
++=cut
++
++# Local Variables:
++# mode: cperl
++# cperl-indent-level: 4
++# fill-column: 100
++# End:
++# vim: expandtab shiftwidth=4:
+--- origsrc/parrot-0.8.2/t/tools/parrot_debugger.t 2008-10-20 03:11:18.000000000 +0000
++++ src/parrot-0.8.2/t/tools/parrot_debugger.t 2008-12-29 16:14:57.334125000 +0000
+@@ -1,6 +1,6 @@
+ #! perl
+ # Copyright (C) 2007-2008, The Perl Foundation.
+-# $Id: /mirror/trunk/t/tools/parrot_debugger.t 30584 2008-08-26T01:31:47.766857Z chromatic $
++# $Id: parrot_debugger.t 34575 2008-12-29 14:53:54Z rurban $
+
+ =head1 NAME
+
+@@ -22,7 +22,7 @@
+ =head1 REQUIREMENTS
+
+ This test script requires you to build parrot_debugger, by typing
+-"make parrot_debugger" (using a suitable make tool for your platform).
++"make parrot_utils" (using a suitable make tool for your platform).
+ If this requirement has not been met, all tests will be skipped.
+
+ =cut
+@@ -32,7 +32,7 @@
+ use lib qw(lib);
+
+ use Test::More;
+-use IO::File;
++use IO::File ();
+ use Parrot::Config;
+ use File::Spec;
+
+@@ -42,7 +42,7 @@
+ $path_to_pdb = File::Spec->catfile( ".", "parrot_debugger" );
+ my $exefile = $path_to_pdb . $PConfig{exe};
+ unless ( -f $exefile ) {
+- plan skip_all => "parrot_debugger hasn't been built";
++ plan skip_all => "parrot_debugger hasn't been built. Run make parrot_utils";
+ exit(0);
+ }
+ }
+@@ -101,6 +101,7 @@
+ my $output = join( '', <$f> );
+
+ local $Test::Builder::Level = $Test::Builder::Level + 1;
++ unlink ($codefn, $stdinfn, $stdoutfn);
+ like( $output, $check, $diag );
+ }
+
+--- origsrc/parrot-0.8.2/t/tools/pbc_disassemble.t 1970-01-01 00:00:00.000000000 +0000
++++ src/parrot-0.8.2/t/tools/pbc_disassemble.t 2008-12-29 16:14:57.287250000 +0000
+@@ -0,0 +1,120 @@
++#! perl
++# Copyright (C) 2007-2008, The Perl Foundation.
++# $Id: pbc_disassemble.t 34223 2008-12-22 03:24:34Z petdance $
++
++=head1 NAME
++
++t/tools/pbc_disassemble.t - test the Parrot Debugger
++
++=head1 SYNOPSIS
++
++ % prove t/tools/pbc_disassemble.t
++
++=head1 DESCRIPTION
++
++Tests the C<pbc_disassemble> tool by providing it with a number of source
++files, and running through it with various commands.
++
++We never actually check the I<full> output of pbc_disassemble. We simply check
++several smaller components to avoid a test file that is far too unwieldy.
++
++
++=head1 REQUIREMENTS
++
++This test script requires you to build pbc_disassemble, by typing
++"make parrot_utils" (using a suitable make tool for your platform).
++If this requirement has not been met, all tests will be skipped.
++
++=cut
++
++use strict;
++use warnings;
++use lib qw(lib);
++
++use Test::More;
++use IO::File ();
++use Parrot::Config;
++use File::Spec;
++
++my $path;
++my $parrot = File::Spec->catfile( ".", $PConfig{test_prog} );
++
++BEGIN {
++ $path = File::Spec->catfile( ".", "pbc_disassemble" );
++ my $exefile = $path . $PConfig{exe};
++ unless ( -f $exefile ) {
++ plan skip_all => "pbc_disassemble hasn't been built. Run make parrot_utils";
++ exit(0);
++ }
++ plan tests => 2;
++}
++
++output_like( <<PIR, "pir", [ qr/set_n_nc/, qr/print_n/], 'pbc_disassemble');
++.sub main :main
++ \$N3 = 3.14159
++ print \$N3
++ print "\\n"
++.end
++PIR
++
++=head1 HELPER SUBROUTINES
++
++=head2 output_like
++
++ output_like(<<PASM, "pasm", "some output", "running $file");
++
++Takes 3-4 arguments: a file to run,
++the filename-extension of the file (probably "pir" or "pasm"),
++an arrayref or single regex string to match within pbc_disassemble's output,
++and the optional test diagnostic.
++
++=cut
++
++my $testno = 0;
++
++sub output_like {
++ my ( $file, $ext, $check, $diag ) = @_;
++ $testno++;
++ my $codefn = "$0.$testno.$ext";
++ my $pbcfn = "$0.$testno.pbc";
++ my $stdoutfn = "$0.$testno.stdout";
++ my $f = IO::File->new(">$codefn");
++ $f->print($file);
++ $f->close();
++ system("$parrot -o $pbcfn $codefn 2>&1");
++ system("$path $pbcfn >$stdoutfn 2>&1");
++ $f = IO::File->new($stdoutfn);
++
++ my $output = join( '', <$f> );
++
++ local $Test::Builder::Level = $Test::Builder::Level + 1;
++ unlink ($codefn, $pbcfn, $stdoutfn);
++ if (ref $check eq 'ARRAY') {
++ for my $chk (@$check) {
++ like( $output, $chk, $diag );
++ $testno++;
++ }
++ } else {
++ like( $output, $check, $diag );
++ }
++}
++
++=head1 TODO
++
++=over 4
++
++=item
++
++Flesh it out. This is a bare bones proof of concept.
++Add tests for all of the commands.
++
++=back
++
++=cut
++
++# Local Variables:
++# mode: cperl
++# cperl-indent-level: 4
++# fill-column: 100
++# End:
++# vim: expandtab shiftwidth=4:
+--- origsrc/parrot-0.8.2/t/tools/pbc_info.t 1970-01-01 00:00:00.000000000 +0000
++++ src/parrot-0.8.2/t/tools/pbc_info.t 2008-12-29 16:14:57.318500000 +0000
+@@ -0,0 +1,120 @@
++#! perl
++# Copyright (C) 2007-2008, The Perl Foundation.
++# $Id: pbc_info.t 34223 2008-12-22 03:24:34Z petdance $
++
++=head1 NAME
++
++t/tools/pbc_info.t - test the Parrot Dumper
++
++=head1 SYNOPSIS
++
++ % prove t/tools/pbc_info.t
++
++=head1 DESCRIPTION
++
++Tests the C<pbc_info> tool by providing it with a number of source
++files, and running through it with various commands.
++
++We never actually check the I<full> output of pbc_info. We simply check
++several smaller components to avoid a test file that is far too unwieldy.
++
++
++=head1 REQUIREMENTS
++
++This test script requires you to build pbc_info, by typing
++"make parrot_utils" (using a suitable make tool for your platform).
++If this requirement has not been met, all tests will be skipped.
++
++=cut
++
++use strict;
++use warnings;
++use lib qw(lib);
++
++use Test::More;
++use IO::File ();
++use Parrot::Config;
++use File::Spec;
++
++my $path;
++my $parrot = File::Spec->catfile( ".", $PConfig{test_prog} );
++
++BEGIN {
++ $path = File::Spec->catfile( ".", "pbc_info" );
++ my $exefile = $path . $PConfig{exe};
++ unless ( -f $exefile ) {
++ plan skip_all => "pbc_info hasn't been built. Run make parrot_utils";
++ exit(0);
++ }
++ plan tests => 4;
++}
++
++output_like( <<PIR, "pir", [qr/FIXUP_t/, qr/PIC_idx/, qr/CONSTANT_t/, qr/BYTECODE_t/], 'pbc_info');
++.sub main :main
++ \$N3 = 3.14159
++ print \$N3
++ print "\\n"
++.end
++PIR
++
++=head1 HELPER SUBROUTINES
++
++=head2 output_like
++
++ output_like(<<PASM, "pasm", "some output", "running $file");
++
++Takes 3-4 arguments: a file to run,
++the filename-extension of the file (probably "pir" or "pasm"),
++an arrayref or single regex string to match within pbc_info's output,
++and the optional test diagnostic.
++
++=cut
++
++my $testno = 0;
++
++sub output_like {
++ my ( $file, $ext, $check, $diag ) = @_;
++ $testno++;
++ my $codefn = "$0.$testno.$ext";
++ my $pbcfn = "$0.$testno.pbc";
++ my $stdoutfn = "$0.$testno.stdout";
++ my $f = IO::File->new(">$codefn");
++ $f->print($file);
++ $f->close();
++ system("$parrot -o $pbcfn $codefn 2>&1");
++ system("$path $pbcfn >$stdoutfn 2>&1");
++ $f = IO::File->new($stdoutfn);
++
++ my $output = join( '', <$f> );
++
++ local $Test::Builder::Level = $Test::Builder::Level + 1;
++ unlink ($codefn, $pbcfn, $stdoutfn);
++ if (ref $check eq 'ARRAY') {
++ for my $chk (@$check) {
++ like( $output, $chk, $diag );
++ $testno++;
++ }
++ } else {
++ like( $output, $check, $diag );
++ }
++}
++
++=head1 TODO
++
++=over 4
++
++=item
++
++Flesh it out. This is a bare bones proof of concept.
++Add tests for all of the commands.
++
++=back
++
++=cut
++
++# Local Variables:
++# mode: cperl
++# cperl-indent-level: 4
++# fill-column: 100
++# End:
++# vim: expandtab shiftwidth=4:
+--- origsrc/parrot-0.8.2/t/tools/pbc_merge.t 2008-10-20 03:11:18.000000000 +0000
++++ src/parrot-0.8.2/t/tools/pbc_merge.t 2008-12-28 12:37:59.537250000 +0000
+@@ -1,6 +1,6 @@
+ #! perl
+ # Copyright (C) 2005-2007, The Perl Foundation.
+-# $Id: /mirror/trunk/t/tools/pbc_merge.t 18563 2007-05-16T00:53:55.855429Z chromatic $
++# $Id: pbc_merge.t 18563 2007-05-16 00:53:55Z chromatic $
+
+ =head1 NAME
+
+--- origsrc/parrot-0.8.2/t/tools/pdump.t 1970-01-01 00:00:00.000000000 +0000
++++ src/parrot-0.8.2/t/tools/pdump.t 2008-12-29 16:14:57.318500000 +0000
+@@ -0,0 +1,120 @@
++#! perl
++# Copyright (C) 2007-2008, The Perl Foundation.
++# $Id: pdump.t 34223 2008-12-22 03:24:34Z petdance $
++
++=head1 NAME
++
++t/tools/pdump.t - test the Parrot Dumper
++
++=head1 SYNOPSIS
++
++ % prove t/tools/pdump.t
++
++=head1 DESCRIPTION
++
++Tests the C<pdump> tool by providing it with a number of source
++files, and running through it with various commands.
++
++We never actually check the I<full> output of pdump. We simply check
++several smaller components to avoid a test file that is far too unwieldy.
++
++
++=head1 REQUIREMENTS
++
++This test script requires you to build pdump, by typing
++"make parrot_utils" (using a suitable make tool for your platform).
++If this requirement has not been met, all tests will be skipped.
++
++=cut
++
++use strict;
++use warnings;
++use lib qw(lib);
++
++use Test::More;
++use IO::File ();
++use Parrot::Config;
++use File::Spec;
++
++my $path;
++my $parrot = File::Spec->catfile( ".", $PConfig{test_prog} );
++
++BEGIN {
++ $path = File::Spec->catfile( ".", "pdump" );
++ my $exefile = $path . $PConfig{exe};
++ unless ( -f $exefile ) {
++ plan skip_all => "pdump hasn't been built. Run make parrot_utils";
++ exit(0);
++ }
++ plan tests => 2;
++}
++
++output_like( <<PIR, "pir", [qr/'PFC_STRING'/, qr/PFC_PMC/], '');
++.sub main :main
++ \$N3 = 3.14159
++ print \$N3
++ print "\\n"
++.end
++PIR
++
++=head1 HELPER SUBROUTINES
++
++=head2 output_like
++
++ output_like(<<PASM, "pasm", "some output", "running $file");
++
++Takes 3-4 arguments: a file to run,
++the filename-extension of the file (probably "pir" or "pasm"),
++an arrayref or single regex string to match within pdump's output,
++and the optional test diagnostic.
++
++=cut
++
++my $testno = 0;
++
++sub output_like {
++ my ( $file, $ext, $check, $diag ) = @_;
++ $testno++;
++ my $codefn = "$0.$testno.$ext";
++ my $pbcfn = "$0.$testno.pbc";
++ my $stdoutfn = "$0.$testno.stdout";
++ my $f = IO::File->new(">$codefn");
++ $f->print($file);
++ $f->close();
++ system("$parrot -o $pbcfn $codefn 2>&1");
++ system("$path $pbcfn >$stdoutfn 2>&1");
++ $f = IO::File->new($stdoutfn);
++
++ my $output = join( '', <$f> );
++
++ local $Test::Builder::Level = $Test::Builder::Level + 1;
++ unlink ($codefn, $pbcfn, $stdoutfn);
++ if (ref $check eq 'ARRAY') {
++ for my $chk (@$check) {
++ like( $output, $chk, $diag );
++ $testno++;
++ }
++ } else {
++ like( $output, $check, $diag );
++ }
++}
++
++=head1 TODO
++
++=over 4
++
++=item
++
++Flesh it out. This is a bare bones proof of concept.
++Add tests for all of the commands.
++
++=back
++
++=cut
++
++# Local Variables:
++# mode: cperl
++# cperl-indent-level: 4
++# fill-column: 100
++# End:
++# vim: expandtab shiftwidth=4:
+--- origsrc/parrot-0.8.2/t/tools/pmc2c.t 2008-10-20 03:11:18.000000000 +0000
++++ src/parrot-0.8.2/t/tools/pmc2c.t 2008-12-28 12:37:59.552875000 +0000
+@@ -1,6 +1,6 @@
+ #! perl
+ # Copyright (C) 2005-2008, The Perl Foundation.
+-# $Id: /mirror/trunk/t/tools/pmc2c.t 28412 2008-06-16T02:39:40.990285Z chromatic $
++# $Id: pmc2c.t 28405 2008-06-16 02:39:40Z chromatic $
+
+ =head1 NAME
+
+--- origsrc/parrot-0.8.2/tools/build/cygchkdll.sh 2008-06-01 09:08:35.000000000 +0000
++++ src/parrot-0.8.2/tools/build/cygchkdll.sh 1970-01-01 00:00:00.000000000 +0000
+@@ -1,5 +0,0 @@
+-libname=${2##*/}
+-if cygcheck ./$1 | egrep "Error.*find.*$libname" >/dev/null ; then
+- echo "Could not find $2. Guessing you need to add `pwd`/blib/lib to PATH."
+- exit 1
+-fi
+--- origsrc/parrot-0.8.2/tools/dev/install_files.pl 2008-12-17 06:55:04.000000000 +0000
++++ src/parrot-0.8.2/tools/dev/install_files.pl 2008-12-25 18:32:51.225250000 +0000
+@@ -126,7 +126,7 @@
+ bindir => '/usr/bin',
+ libdir => '/usr/lib',
+ includedir => '/usr/include',
+- docdir => '/usr/share/doc',
++ docdir => '/usr/share/doc/parrot',
+ 'dry-run' => 0,
+ );
+
+@@ -189,6 +189,7 @@
+ }
+ elsif ( $meta{include} ) {
+ $dest =~ s/^include//;
++ $dest =~ s/^src/parrot/;
+ $dest = File::Spec->catdir( $options{includedir}, $dest );
+ }
+ elsif ( $meta{doc} ) {
+@@ -197,16 +198,19 @@
+ elsif ( $meta{pkgconfig} ) {
+
+ # For the time being this is hardcoded as being installed under libdir
+- # as it is typically donw with automake installed packages. If there
++ # as it is typically done with automake installed packages. If there
+ # is a use case to make this configurable we'll add a seperate
+ # --pkgconfigdir option.
+ $dest = File::Spec->catdir( $options{libdir}, 'pkgconfig', $dest );
+ }
+- elsif ( /\[library]/ ) {
+- $dest =~ s/^runtime/$options{libdir}/;
+- }
+ else {
+- $dest = File::Spec->catdir( $options{prefix}, $dest );
++ $dest =~ s|^src/|lib/parrot/src/|;
++ next if $dest =~ /^compilers|config|language|tools/;
++ if (/^runtime/) {
++ $dest =~ s/^runtime/$options{libdir}/;
++ } else {
++ $dest = File::Spec->catdir( $options{prefix}, $dest );
++ }
+ }
+
+ $dest = File::Spec->catdir( $options{buildprefix}, $dest )
+@@ -245,6 +249,7 @@
+ }
+ else {
+ next unless -e $src;
++ next if $^O eq 'cygwin' and -e "$src.exe"; # cygwin stat works, but copy not
+ copy( $src, $dest ) or die "copy $src to $dest: $!\n";
+ print "$dest\n";
+ }
+--- origsrc/parrot-0.8.2/tools/dev/mk_language_shell.pl 2008-12-17 06:55:04.000000000 +0000
++++ src/parrot-0.8.2/tools/dev/mk_language_shell.pl 2008-12-25 13:44:22.850250000 +0000
+@@ -23,13 +23,19 @@
+ files and directories (relative to C<path>, which defaults
+ to F<languages/xyz> if an explicit C<path> isn't given):
+
++ MAINTAINER
+ README
++ STATUS
+ xyz.pir
+ config/makefiles/root.in
++ docs/running.pod
++ docs/Xyz.pod
++ src/builtins/say.pir
+ src/parser/grammar.pg
+ src/parser/grammar-oper.pg
+ src/parser/actions.pm
+- src/builtins/say.pir
++ src/pmc/Xyz.pmc
++ src/ops/Xyz.ops
+ t/harness
+ t/00-sanity.t
+
+@@ -135,6 +141,20 @@
+ __README__
+ Language '@lang@' was created with @script@, @rev@.
+
++See docs/@lang@.pod for the documentation, and
++docs/running.pod for the command-line options.
++
++__MAINTAINER__
++# @Id@
++
++N: My Name
++E: My Email
++
++__STATUS__
++Number of tests passing:
++Percentage of implementation finished:
++TODO:
++
+ __config/makefiles/root.in__
+ ## @Id@
+
+@@ -142,33 +162,48 @@
+ PARROT_ARGS =
+
+ ## configuration settings
++HLLNAME = @lclang@
+ BUILD_DIR = @build_dir@
+ LOAD_EXT = @load_ext@
+ O = @o@
++BIN_DIR = @bin_dir@
++LIB_DIR = @lib_dir@
++DOC_DIR = @doc_dir@
++MANDIR = @mandir@
++HLL_LIBPATH = $(BUILD_DIR)/runtime/parrot/library
++PARROT_DYNEXT = $(BUILD_DIR)/runtime/parrot/dynext
+
+ ## Setup some commands
+ LN_S = @lns@
+ PERL = @perl@
+ RM_RF = @rm_rf@
+ CP = @cp@
++MKPATH = @mkpath@
++POD2MAN = pod2man
++#IF(parrot_is_shared and not(cygwin or win32)):export LD_RUN_PATH := @blib_dir@:$(LD_RUN_PATH)
+ PARROT = ../../parrot@exe@
++PBC_TO_EXE = ../../pbc_to_exe@exe@
+ CAT = $(PERL) -MExtUtils::Command -e cat
+-BUILD_DYNPMC = $(PERL) $(BUILD_DIR)/tools/build/dynpmc.pl
++PMCBUILD = $(PERL) $(BUILD_DIR)/tools/build/dynpmc.pl
++OPSBUILD = $(PERL) $(BUILD_DIR)/tools/build/dynoplibs.pl
+ RECONFIGURE = $(PERL) $(BUILD_DIR)/tools/dev/reconfigure.pl
+-#CONDITIONED_LINE(darwin):
+-#CONDITIONED_LINE(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
+-#CONDITIONED_LINE(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
++#IF(darwin):
++#IF(darwin):# MACOSX_DEPLOYMENT_TARGET must be defined for OS X compilation/linking
++#IF(darwin):export MACOSX_DEPLOYMENT_TARGET := @osx_version@
+
+ ## places to look for things
+-PARROT_DYNEXT = $(BUILD_DIR)/runtime/parrot/dynext
+ PGE_LIBRARY = $(BUILD_DIR)/runtime/parrot/library/PGE
++PCT = $(BUILD_DIR)/runtime/parrot/library/PCT.pbc
+ PERL6GRAMMAR = $(PGE_LIBRARY)/Perl6Grammar.pbc
+ NQP = $(BUILD_DIR)/compilers/nqp/nqp.pbc
+-PCT = $(BUILD_DIR)/runtime/parrot/library/PCT.pbc
+
+ PMC_DIR = src/pmc
++OPS_DIR = src/ops
++OPSLIB = @lclang@
+
+-all: @lclang@.pbc
++build: @lclang@.pbc
++
++all: @lclang@.pbc Makefile @lclang@@exe@ installable
+
+ @UCLANG@_GROUP = $(PMC_DIR)/@lclang@_group$(LOAD_EXT)
+
+@@ -176,18 +211,23 @@
+ src/gen_grammar.pir \
+ src/gen_actions.pir \
+ src/gen_builtins.pir \
+-# $(@UCLANG@_GROUP)
++ $(@UCLANG@_GROUP)
+
+ BUILTINS_PIR = \
+- src/builtins/say.pir \
++ src/builtins/say.pir
+
+-# PMCS = @lclang@
+-# PMC_SOURCES = $(PMC_DIR)/@lclang@.pmc
++PMCS = @lang@
++PMC_SOURCES = $(PMC_DIR)/@lang@.pmc
++OPS_SOURCES = $(OPS_DIR)/@lang@.ops
++DOCS = MAINTAINER README TODO
+
+ # the default target
+-@lclang@.pbc: $(PARROT) $(SOURCES)
++@lclang@.pbc: $(SOURCES)
+ $(PARROT) $(PARROT_ARGS) -o @lclang@.pbc @lclang@.pir
+
++@lclang@@exe@: @lclang@.pbc
++ $(PBC_TO_EXE) @lclang@.pbc
++
+ src/gen_grammar.pir: $(PERL6GRAMMAR) src/parser/grammar.pg src/parser/grammar-oper.pg
+ $(PARROT) $(PARROT_ARGS) $(PERL6GRAMMAR) \
+ --output=src/gen_grammar.pir \
+@@ -201,11 +241,24 @@
+ src/gen_builtins.pir: $(BUILTINS_PIR)
+ $(CAT) $(BUILTINS_PIR) >src/gen_builtins.pir
+
+-$(@UCLANG@_GROUP): $(PARROT) $(PMC_SOURCES)
+- cd $(PMC_DIR) && $(BUILD_DYNPMC) generate $(PMCS)
+- cd $(PMC_DIR) && $(BUILD_DYNPMC) compile $(PMCS)
+- cd $(PMC_DIR) && $(BUILD_DYNPMC) linklibs $(PMCS)
+- cd $(PMC_DIR) && $(BUILD_DYNPMC) copy --destination=$(PARROT_DYNEXT) $(PMCS)
++$(@UCLANG@_GROUP): $(PMC_SOURCES)
++ @cd $(PMC_DIR) && $(PMCBUILD) generate $(PMCS)
++ @cd $(PMC_DIR) && $(PMCBUILD) compile $(PMCS)
++ @cd $(PMC_DIR) && $(PMCBUILD) linklibs $(PMCS)
++ @cd $(PMC_DIR) && $(PMCBUILD) copy "--destination=$(PARROT_DYNEXT)" $(PMCS)
++
++ops/@lang@$(LOAD_EXT) : $(OPS_SOURCES)
++ @cd $(OPS_DIR) && $(OPSBUILD) generate $(OPSLIB)
++ @cd $(OPS_DIR) && $(OPSBUILD) compile $(OPSLIB)
++ @cd $(OPS_DIR) && $(OPSBUILD) linklibs $(OPSLIB)
++ @cd $(OPS_DIR) && $(OPSBUILD) copy "--destination=$(PARROT_DYNEXT)" $(OPSLIB)
++
++installable : installable_@lclang@@exe@ $(@UCLANG@_GROUP) ops/@lang@$(LOAD_EXT)
++ cp installable_@lclang@@exe@ $(BUILD_DIR)
++ $(CP) @lclang@.pbc $(HLL_LIBPATH)/@lclang@.pbc
++
++installable_@lclang@@exe@ : @lclang@.pbc
++ $(PBC_TO_EXE) @lclang@.pbc --install
+
+ # regenerate the Makefile
+ Makefile: config/makefiles/root.in
+@@ -216,10 +269,16 @@
+ @echo ""
+ @echo "Following targets are available for the user:"
+ @echo ""
+- @echo " all: @lclang@.pbc"
++ @echo " build: @lclang@.pbc"
+ @echo " This is the default."
++ @echo " @lclang@@exe@ Self-hosting binary not to be installed."
++ @echo " all: @lclang@.pbc @lclang@@exe@ installable Makefile"
++ @echo " installable: Create libs and self-hosting binaries to be installed."
++ @echo " install: Install the installable targets and docs."
++ @echo ""
+ @echo "Testing:"
+ @echo " test: Run the test suite."
++ @echo " test-installable: Test self-hosting targets."
+ @echo " testclean: Clean up test results."
+ @echo ""
+ @echo "Cleaning:"
+@@ -234,7 +293,21 @@
+ test: all
+ $(PERL) t/harness
+
+-# this target has nothing to do
++# TODO: rename build_dir. basic run for missing libs
++test-installable : installable
++ echo "1" | ./installable_@lclang@@exe@
++
++install : installable
++ $(CP) installable_@lclang@@exe@ $(DESTDIR)$(BIN_DIR)/parrot-@lclang@@exe@
++ @cd $(OPS_DIR) && $(OPSBUILD) copy "--destination=$(DESTDIR)$(LIB_DIR)/parrot/dynext" $(OPSLIB)
++ @cd $(PMC_DIR) && $(PMCBUILD) copy "--destination=$(DESTDIR)$(LIB_DIR)/parrot/dynext" $(PMCS)
++ $(CP) @lclang@.pbc $(DESTDIR)$(LIB_DIR)/parrot/library/@lclang@.pbc
++ -$(MKPATH) $(DESTDIR)$(MANDIR)/man1
++ $(POD2MAN) docs/running.pod > $(DESTDIR)$(MANDIR)/man1/parrot-@lclang@.1
++ -$(MKPATH) $(DESTDIR)$(DOC_DIR)/languages/@lclang@
++ $(CP) $(DOCS) $(DESTDIR)$(DOC_DIR)/languages/@lclang@
++
++# clean intermediate test files
+ testclean:
+
+ CLEANUPS = \
+@@ -252,6 +325,9 @@
+ $(PMC_DIR)/*.manifest \
+ $(PMC_DIR)/*.pdb \
+ $(PMC_DIR)/*.lib \
++ @lclang@@exe@ \
++ $(HLL_LIBPATH)/@lclang@.pbc \
++ installable_@lclang@@exe@ \
+
+
+ clean: testclean
+@@ -262,7 +338,47 @@
+
+ distclean: realclean
+
++__docs/@lang@.pod__
++# @Id@
++
++=head1 @lang@
++
++=head1 Design
++
++=head1 SEE ALSO
++
++=cut
++
++# Local Variables:
++# fill-column:78
++# End:
++# vim: expandtab shiftwidth=4:
++__docs/running.pod__
++# @Id@
++
++=head1 Running
+
++This document describes how to use the command line @lclang@ program, which
++...
++
++=head2 Usage
++
++ parrot @lclang@.pbc [OPTIONS] <input>
++
++or
++
++ parrot-@lclang@@exe [OPTIONS] <input>
++
++A number of additional options are available:
++
++ -q Quiet mode; suppress output of summary at the end.
++
++=cut
++
++# Local Variables:
++# fill-column:78
++# End:
++# vim: expandtab shiftwidth=4:
+ __@lclang@.pir__
+ =head1 TITLE
+
+@@ -487,6 +603,221 @@
+ # End:
+ # vim: expandtab shiftwidth=4:
+
++__src/pmc/@lang@.pmc__
++/*
++Copyright (C) 20xx, The Perl Foundation.
++@Id@
++
++=head1 NAME
++
++src/pmc/@lang@.pmc - @lang@
++
++=head1 DESCRIPTION
++
++These are the vtable functions for the @lang@ class.
++
++=cut
++
++=head2 Helper functions
++
++=over 4
++
++=item INTVAL size(INTERP, PMC, PMC)
++
++*/
++
++#include "parrot/parrot.h"
++
++static INTVAL
++size(Interp *interp, PMC* self, PMC* obj)
++{
++ INTVAL retval;
++ INTVAL dimension;
++ INTVAL length;
++ INTVAL pos;
++
++ if (!obj || PMC_IS_NULL(obj)) {
++ /* not set, so a simple 1D */
++ return VTABLE_get_integer(interp, self);
++ }
++
++ retval = 1;
++ dimension = VTABLE_get_integer(interp, obj);
++ for (pos = 0; pos < dimension; pos++)
++ {
++ length = VTABLE_get_integer_keyed_int(interp, obj, pos);
++ retval *= length;
++ }
++ return retval;
++}
++
++/*
++
++=back
++
++=head2 Methods
++
++=over 4
++
++=cut
++
++*/
++
++pmclass @lang@
++ extends ResizablePMCArray
++ provides array
++ group @lclang@_group
++
++ need_ext
++ dynpmc
++ {
++/*
++
++=item C<void class_init()>
++
++initialize the pmc class. Store some constants, etc.
++
++=cut
++
++*/
++
++ /* RT#48194: move any constant string declarations here so we just do them once. */
++ void class_init() {
++ }
++
++
++/*
++
++=item C<PMC* init()>
++
++initialize the instance.
++
++=cut
++
++*/
++
++void init() {
++ SUPER();
++};
++
++=item C<PMC* get()>
++
++Returns a vector-like PMC.
++
++=cut
++
++*/
++
++ METHOD PMC* get() {
++ PMC* property;
++ INTVAL array_t;
++ STRING* property_name;
++
++ property_name = string_from_literal(INTERP, "property");
++ shape = VTABLE_getprop(INTERP, SELF, property_name);
++ if (PMC_IS_NULL(property)) {
++ /*
++ * No property has been set yet. This means that we are
++ * a simple vector
++ *
++ * we use our own type here. Perhaps a better way to
++ * specify it?
++ */
++ /*
++ array_t = pmc_type(INTERP,
++ string_from_literal(INTERP, "@lang@"));
++ */
++ property = pmc_new(INTERP, VTABLE_type(INTERP, SELF));
++
++ VTABLE_set_integer_native(INTERP, property, 1);
++ VTABLE_set_integer_keyed_int(INTERP, property, 0,
++ VTABLE_get_integer(INTERP, SELF));
++ VTABLE_setprop(INTERP, SELF, property_name, property);
++ }
++ RETURN(PMC* property);
++ }
++
++/*
++
++=item C<PMC* set()>
++
++Change the existing @lang@ by passing in an existing vector.
++
++If the new property is larger than our old property, pad the end of the APLv
++with elements from the beginning.
++
++If the new property is shorter than our old property, truncate elements from
++the end of the APLv.
++
++=cut
++
++*/
++
++ METHOD set(PMC *new_property) {
++ STRING* property_name;
++ PMC* old_property;
++ INTVAL old_size, new_size, pos;
++
++ /* save the old property momentarily, set the new property */
++ property_name = string_from_literal(INTERP, "property");
++ old_property = VTABLE_getprop(INTERP, SELF, property_name);
++ VTABLE_setprop(INTERP, SELF, property_name, new_property);
++
++ /* how big are these property? */
++ old_size = size(INTERP, SELF, old_property);
++ new_size = size(INTERP, SELF, new_property);
++
++ if (old_size > new_size) {
++ for (; new_size != old_size; new_size++) {
++ VTABLE_pop_pmc(INTERP, SELF);
++ }
++ } else if (new_size > old_size) {
++ pos = 0;
++ for (; new_size != old_size; old_size++, pos++) {
++ /* RT#48196 clone this? */
++ VTABLE_push_pmc(INTERP, SELF,
++ VTABLE_get_pmc_keyed_int(INTERP, SELF, pos));
++ }
++ }
++ }
++
++/*
++
++=back
++
++=cut
++
++*/
++
++}
++
++/*
++ * Local variables:
++ * c-file-style: "parrot"
++ * End:
++ * vim: expandtab shiftwidth=4:
++ */
++__src/ops/@lang@.ops__
++/*
++ * @id@
++ * Copyright (C) 20xx, The Perl Foundation.
++ */
++
++#include "parrot/dynext.h"
++VERSION = PARROT_VERSION;
++
++/* Op to get the address of a PMC. */
++inline op @lclang@_pmc_addr(out INT, invar PMC) :base_core {
++ $1 = (int) $2;
++ goto NEXT();
++}
++
++/*
++ * Local variables:
++ * c-file-style: "parrot"
++ * End:
++ * vim: expandtab shiftwidth=4:
++ */
+ __src/builtins/say.pir__
+ # @Id@
+
+--- origsrc/parrot-0.8.2/tools/install/smoke.pl 2008-12-17 06:55:04.000000000 +0000
++++ src/parrot-0.8.2/tools/install/smoke.pl 2008-12-25 13:44:22.897125000 +0000
+@@ -8,8 +8,10 @@
+
+ use Getopt::Long;
+ use File::Spec::Functions;
++use lib qw( lib );
++use vars qw( %PConfig );
+
+-use Test::More tests => 28;
++use Test::More tests => 29;
+
+ =head1 NAME
+
+@@ -17,22 +19,23 @@
+
+ =head1 SYNOPSIS
+
+-parrot in bin
++ parrot in bin
+
+ % cd /usr/local/parrot-$version
+- % perl tools/install/smoke.pl
++ % perl tools/install/smoke.pl -Ilib
+
+-parrot in .
++ parrot in .
+
+ % perl tools/install/smoke.pl --bindir=.
+
+-test installation in DESTDIR:
++ test installation in DESTDIR:
+
+ % cd /usr/src/parrot
+ % mkdir .inst
+ % make install DESTDIR=.inst
+ % perl tools/install/smoke.pl DESTDIR=.inst
+
++
+ =head1 DESCRIPTION
+
+ Checks that most of things run (or just start) into the install directory,
+@@ -42,29 +45,68 @@
+
+ =over
+
++=item -I libdir
++
++Add libdir to the libpath to find Parrot::Config
++
+ =item --bindir=/usr/bin
+
+-Override default value : 'bin'
++Override Parrot::Config bindir
+
+ =item --libdir=/usr/lib
+
+-Override default value : 'lib'
++Override Parrot::Config libdir
++
++=item --prefix=/usr
++
++Override Parrot::Config prefix and adjust
++libdir and bindir accordingly.
++
++=item DESTDIR=instpath
++
++Use the temp. installation in instpath.
+
+ =back
+
+ =cut
+
+-my ($bindir, $libdir, $DESTDIR);
+-my $opts = GetOptions(
+- 'bindir=s' => \$bindir,
+- 'libdir=s' => \$libdir,
+- 'DESTDIR=s' => \$DESTDIR,
+-);
+-
+-$bindir = 'bin' unless $bindir;
+-$libdir = 'lib' unless $libdir;
++my (@libdirs, $prefix, $bindir, $libdir, $DESTDIR);
++my $opts = GetOptions( 'I=s' => \@libdirs,
++ 'prefix=s' => \$prefix,
++ 'bindir=s' => \$bindir,
++ 'libdir=s' => \$libdir,
++ 'DESTDIR=s' => \$DESTDIR,
++ );
++if (@libdirs) {
++ push @INC, @libdirs;
++}
++require Parrot::Config;
++Parrot::Config->import;
++require Parrot::Test;
++
++$bindir = $PConfig{bindir} unless $bindir;
++$libdir = $PConfig{libdir} unless $libdir;
++if ($prefix) {
++ $bindir = $prefix . "/bin";
++ $libdir = $prefix . "/lib";
++}
++# Check for DESTDIR arg and adjust the path
++if (@ARGV and $ARGV[0] =~ /^DESTDIR/) {
++ if ($ARGV[0] =~ /^DESTDIR=(\S+)/) {
++ $DESTDIR = $1;
++ }
++ else {
++ $DESTDIR = $ARGV[1];
++ }
++}
++if ($DESTDIR) {
++ my $envsep = $^O eq 'MSWin32' ? ';' : ':';
++ $ENV{PATH} = $DESTDIR.$bindir.$envsep.$ENV{PATH};
++ $bindir = $DESTDIR . $bindir;
++ $libdir = $DESTDIR . $libdir;
++}
+
+-chdir $DESTDIR if ($DESTDIR);
++use File::Spec::Functions;
+
+ my $filename;
+ my $exe;
+@@ -75,6 +117,7 @@
+ #
+ # parrot executable
+ #
++-x $parrot or die "$parrot does not exist\n";
+
+ $exe = catfile($bindir, 'pbc_merge');
+ $out = `$exe`;
+@@ -96,7 +139,7 @@
+
+ $filename = 'test.pg';
+ open $FH, '>', $filename
+- or die "Can't open $filename ($!).\n";
++ or die "Can't open $filename ($!).\n";
+ print $FH "token TOP { \\s* }\n";
+ close $FH;
+ $out = `$parrot $libdir/parrot/library/PGE/Perl6Grammar.pir $filename`;
+@@ -106,7 +149,7 @@
+ # compilers/tge is typically not installed
+ $filename = 'test.tg';
+ open $FH, '>', $filename
+- or die "Can't open $filename ($!).\n";
++ or die "Can't open $filename ($!).\n";
+ print $FH "transform past (ROOT) { }\n";
+ close $FH;
+ $out = `$parrot compilers/tge/tgc.pir $filename`;
+@@ -116,7 +159,7 @@
+ # compilers/nqp is typically not installed
+ $filename = 'test.nqp';
+ open $FH, '>', $filename
+- or die "Can't open $filename ($!).\n";
++ or die "Can't open $filename ($!).\n";
+ print $FH "say('hello world!');\n";
+ close $FH;
+ $out = `$parrot compilers/nqp/nqp.pbc $filename`;
+@@ -124,12 +167,13 @@
+ unlink($filename);
+
+ #
+-# some languages
+-#
++# Some languages.
++# Now we just need to know where the HLL pbc's are installed.
++# See L<pdd30_install.pod>
+
+ $filename = 'test.bc';
+ open $FH, '>', $filename
+- or die "Can't open $filename ($!).\n";
++ or die "Can't open $filename ($!).\n";
+ print $FH "1 + 2\n";
+ close $FH;
+ $out = `$parrot languages/abc/abc.pbc $filename`;
+@@ -138,7 +182,7 @@
+
+ $filename = 'test.apl';
+ open $FH, '>', $filename
+- or die "Can't open $filename ($!).\n";
++ or die "Can't open $filename ($!).\n";
+ print $FH "\"Hello world!\"";
+ close $FH;
+ $out = `$parrot languages/APL/APL.pbc $filename`;
+@@ -160,7 +204,7 @@
+
+ $filename = 'test.js';
+ open $FH, '>', $filename
+- or die "Can't open $filename ($!).\n";
++ or die "Can't open $filename ($!).\n";
+ print $FH "print(\"Hello World from JS\\n\");";
+ close $FH;
+ $out = `$parrot languages/ecmascript/js.pbc $filename`;
+@@ -169,7 +213,7 @@
+
+ $filename = 'test.HQ9Plus';
+ open $FH, '>', $filename
+- or die "Can't open $filename ($!).\n";
++ or die "Can't open $filename ($!).\n";
+ print $FH "H";
+ close $FH;
+ $out = `$parrot languages/hq9plus/hq9plus.pbc $filename`;
+@@ -178,7 +222,7 @@
+
+ $filename = 'test.l';
+ open $FH, '>', $filename
+- or die "Can't open $filename ($!).\n";
++ or die "Can't open $filename ($!).\n";
+ print $FH "( print \"Hello, World!\" )\n";
+ close $FH;
+ $out = `$parrot languages/lisp/lisp.pbc $filename`;
+@@ -187,7 +231,7 @@
+
+ $filename = 'test.lolcode';
+ open $FH, '>', $filename
+- or die "Can't open $filename ($!).\n";
++ or die "Can't open $filename ($!).\n";
+ print $FH <<'LOLCODE';
+ HAI 1.2
+ VISIBLE "HAI WORLD!"
+@@ -206,8 +250,8 @@
+
+ $filename = 'test.text';
+ open $FH, '>', $filename
+- or die "Can't open $filename ($!).\n";
+-print $FH "Hello, World!\n\n";
++ or die "Can't open $filename ($!).\n";
++print $FH "Hello, World!\n";
+ close $FH;
+ $out = `$parrot languages/markdown/markdown.pbc $filename`;
+ ok($out eq "<p>Hello, World!</p>\n\n", "check markdown");
+@@ -221,7 +265,7 @@
+
+ $filename = 'test.l';
+ open $FH, '>', $filename
+- or die "Can't open $filename ($!).\n";
++ or die "Can't open $filename ($!).\n";
+ print $FH "( write \"Hello, World!\\n\" )\n";
+ close $FH;
+ $out = `$parrot languages/pheme/pheme.pbc $filename`;
+@@ -230,7 +274,7 @@
+
+ $filename = 'test.php';
+ open $FH, '>', $filename
+- or die "Can't open $filename ($!).\n";
++ or die "Can't open $filename ($!).\n";
+ print $FH "<?php echo \"Hello, World!\\n\"; ?>";
+ close $FH;
+ $out = `$parrot languages/pipp/pipp.pbc $filename`;
+@@ -239,7 +283,7 @@
+
+ $filename = 'test.p1';
+ open $FH, '>', $filename
+- or die "Can't open $filename ($!).\n";
++ or die "Can't open $filename ($!).\n";
+ print $FH "print \"Hello, World!\\n\";\n";
+ close $FH;
+ $out = `$parrot languages/punie/punie.pbc $filename`;
+@@ -248,7 +292,7 @@
+
+ $filename = 'test.py';
+ open $FH, '>', $filename
+- or die "Can't open $filename ($!).\n";
++ or die "Can't open $filename ($!).\n";
+ print $FH "print 'Hello, World!'\n";
+ close $FH;
+ $out = `$parrot languages/pynie/pynie.pbc $filename`;
+@@ -257,17 +301,29 @@
+
+ $filename = 'test.squaak';
+ open $FH, '>', $filename
+- or die "Can't open $filename ($!).\n";
++ or die "Can't open $filename ($!).\n";
+ print $FH "print(\"Hello, World!\")\n";
+ close $FH;
+ $out = `$parrot languages/squaak/squaak.pbc $filename`;
+ ok($out eq "Hello, World!\n", "check squaak");
+ unlink($filename);
+
++TODO: {
++ local $TODO = 'missing file ?';
++
++$filename = 'test.tcl';
++open $FH, '>', $filename
++ or die "Can't open $filename ($!).\n";
++print $FH "puts {hello world!}\n";
++close $FH;
++$out = `$parrot languages/tcl/tcl.pbc $filename`;
++ok($out eq "hello world!\n", "check tcl");
++unlink($filename);
++}
++
+ # Local Variables:
+ # mode: cperl
+ # cperl-indent-level: 4
+ # fill-column: 100
+ # End:
+ # vim: expandtab shiftwidth=4:
+-
-
[svn:parrot] r34717 - trunk/ports/cygwin
by rurban