Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Merge remote branch 'origin/master' into 233/file_based_config

  • Loading branch information...
commit 3e6bc3e3b94076d0c0e49d0eedff8f788fbe851c 2 parents 1632ca3 + 77a5843
@leto leto authored
Showing with 2,165 additions and 2,406 deletions.
  1. +4 −0 .gitignore
  2. +1 −1  CREDITS
  3. +19 −0 ChangeLog
  4. +1 −2  MANIFEST
  5. +10 −0 MANIFEST.SKIP
  6. +4 −2 MANIFEST.generated
  7. +2 −2 README
  8. +1 −1  RESPONSIBLE_PARTIES
  9. +3 −3 TODO
  10. +1 −1  VERSION
  11. +57 −36 api.yaml
  12. +2 −2 compilers/imcc/api.c
  13. +1 −1  compilers/opsc/src/Ops/Trans/C.pm
  14. +16 −17 config/gen/makefiles/root.in
  15. +3 −0  config/init/hints.pm
  16. +4 −5 config/init/hints/cygwin.pm
  17. +2 −2 docs/book/draft/appe_source_code.pod
  18. +7 −7 docs/book/draft/ch01_introduction.pod
  19. +7 −7 docs/book/pct/ch01_introduction.pod
  20. +7 −8 docs/book/pir/ch01_introduction.pod
  21. +2 −2 docs/deprecations/deprecations.pod
  22. +1 −1  docs/faq.pod
  23. +1 −1  docs/gettingstarted.pod
  24. +3 −3 docs/intro.pod
  25. +0 −2  docs/parrot.pod
  26. +4 −1 docs/parrothist.pod
  27. +1 −3 docs/pdds/draft/pdd06_pasm.pod
  28. +1 −1  docs/project/cage_cleaners_guide.pod
  29. +2 −27 docs/project/metacommitter_guide.pod
  30. +1 −2  docs/project/release_manager_guide.pod
  31. +7 −3 docs/project/ticket_triaging.pod
  32. +21 −141 docs/submissions.pod
  33. +3 −6 docs/tests.pod
  34. +1 −1  docs/translations/README.BGR
  35. +1 −1  docs/translations/README.deutsch
  36. +1 −1  docs/translations/README.espanol
  37. +1 −1  docs/translations/README.francais
  38. +1 −1  docs/translations/README.polski
  39. +1 −1  docs/translations/README.pt-BR
  40. +2 −2 examples/languages/abc/setup.pir
  41. +1 −1  examples/languages/squaak/doc/tutorial_episode_1.pod
  42. +3 −3 examples/languages/squaak/doc/tutorial_episode_4.pod
  43. +2 −2 examples/languages/squaak/doc/tutorial_episode_5.pod
  44. +1 −1  examples/languages/squaak/doc/tutorial_episode_6.pod
  45. +2 −2 examples/pir/befunge/setup.pir
  46. +13 −14 frontend/parrot_debugger/main.c
  47. +2 −2 frontend/pbc_dump/main.c
  48. +1 −1  frontend/pbc_merge/main.c
  49. +197 −192 include/parrot/interpreter.h
  50. +1 −1  include/parrot/oplib/core_ops.h
  51. +3 −3 lib/Parrot/Manifest.pm
  52. +2 −2 lib/Parrot/Pmc2c/PMC.pm
  53. +2 −3 parrotbug
  54. +28 −28 runtime/parrot/include/green_threads.pir
  55. +13 −13 src/debug.c
  56. +21 −7 src/dynoplibs/Rules.in
  57. +30 −10 src/dynpmc/Rules.in
  58. +5 −5 src/embed/api.c
  59. +2 −2 src/exceptions.c
  60. +47 −20 src/extend.c
  61. +1,273 −0 src/interp/api.c
  62. +0 −552 src/interp/inter_create.c
  63. +0 −771 src/interp/inter_misc.c
  64. +7 −7 src/ops/core.ops
  65. +18 −18 src/ops/core_ops.c
  66. +2 −2 src/ops/experimental.ops
  67. +3 −2 src/ops/sys.ops
  68. +21 −14 src/packfile/api.c
  69. +1 −1  src/pmc/arrayiterator.pmc
  70. +1 −1  src/pmc/hashiterator.pmc
  71. +1 −1  src/pmc/iterator.pmc
  72. +1 −1  src/pmc/orderedhashiterator.pmc
  73. +4 −4 src/pmc/parrotinterpreter.pmc
  74. +1 −1  src/pmc/stringiterator.pmc
  75. +1 −1  src/string/api.c
  76. +1 −1  t/pmc/exporter.t
  77. +8 −12 t/pmc/nci.t
  78. +130 −179 t/pmc/timer.t
  79. +40 −40 t/src/embed.t
  80. +1 −1  t/src/embed/strings.t
  81. +1 −1  t/src/exit.t
  82. +39 −164 t/src/extend.t
  83. +3 −3 t/src/extend_vtable.t
  84. +4 −4 t/src/misc.t
  85. +2 −2 t/src/pointer_array.t
  86. +4 −4 t/src/warnings.t
  87. +1 −1  t/tools/install/testlib/README
  88. +7 −1 tools/dev/pbc_to_exe.pir
  89. +7 −7 tools/release/release.json
View
4 .gitignore
@@ -37,6 +37,9 @@ cachegrind.out.*
/*.tmp
# vim swap files
/\.*sw?
+/*/*.sw?
+/*/*/*.sw?
+/*/*/*/*.sw?
/*.vcproj*
/.git
/.parrot_current_rev
@@ -56,6 +59,7 @@ cachegrind.out.*
/libparrot.def
/libparrot.dll
/libparrot.dll.a
+/cygparrot*.dll
/miniparrot
/myconfig
/ops2c
View
2  CREDITS
@@ -113,7 +113,7 @@ E: yDNA@cpan.org
N: Andrew Whitworth
D: Internals development
D: Documentation
-D: Release manager for 0.8.2, 1.3.0, 1.5.0, 2.4.0, 2.11.0, 3.3.0 and 3.10.0
+D: Release manager for 0.8.2, 1.3.0, 1.5.0, 2.4.0, 2.11.0, 3.3.0, 3.10.0 and 4.0.0
E: wknight8111@gmail.com
U: Whiteknight
View
19 ChangeLog
@@ -1,3 +1,22 @@
+2012-01-17 release 4.1.0
+ - Core
+ + Shared libraries and installable binaries are now stripped if built with
+ --optimize on Cygwin, which greatly reduces their size on disk
+ - Documentation
+ - Tests
+
+2012-01-17 release 4.0.0
+ - Core
+ + Several cleanups to the interp subsystem API
+ + Cleanups and documentation additions for green threads and timers
+ + Iterator PMC and family now implement the "iterator" role
+ + A bug in Parrot_ext_try was fixed where it was not popping a context correctly
+ - Documentation
+ + Docs for all versions of Parrot ever released are now available
+ at http://parrot.github.com
+ - Tests
+ + Timer PMC tests were converted from PASM to PIR
+
2011-12-20 release 3.11.0
- Core
+ packfile api and pbc handling improvements
View
3  MANIFEST
@@ -1237,9 +1237,8 @@ src/gc/variable_size_pool.h []
src/global_setup.c []
src/hash.c []
src/hll.c []
+src/interp/api.c []
src/interp/inter_cb.c []
-src/interp/inter_create.c []
-src/interp/inter_misc.c []
src/io/api.c []
src/io/buffer.c []
src/io/core.c []
View
10 MANIFEST.SKIP
@@ -12,6 +12,8 @@
# ports/ should not go into release tarballs
^ports$
^ports/
+^$
+^/
^.*\.diff$
^.*\.diff/
^.*\.obj$
@@ -26,6 +28,12 @@
^.*\.rej/
^.*\.res$
^.*\.res/
+^/.*/.*/.*/.*\.sw?$
+^/.*/.*/.*/.*\.sw?/
+^/.*/.*/.*\.sw?$
+^/.*/.*/.*\.sw?/
+^/.*/.*\.sw?$
+^/.*/.*\.sw?/
^/.*\.core$
^/.*\.core/
^/.*\.def$
@@ -150,6 +158,8 @@
^/core.*/
^/cover_db$
^/cover_db/
+^/cygparrot.*\.dll$
+^/cygparrot.*\.dll/
^/docs/.*\.tmp$
^/docs/.*\.tmp/
^/docs/Makefile$
View
6 MANIFEST.generated
@@ -1,13 +1,14 @@
# See tools/dev/install_files.pl for documentation on the
# format of this file.
# Please re-sort this file after *EVERY* modification
-blib/lib/libparrot.3.11.0.dylib [main]lib
+blib/lib/libparrot.4.0.0.dylib [main]lib
blib/lib/libparrot.a [main]lib
blib/lib/libparrot.dylib [main]lib
blib/lib/libparrot.so [main]lib
-blib/lib/libparrot.so.3.11.0 [main]lib
+blib/lib/libparrot.so.4.0.0 [main]lib
compilers/data_json/data_json.pbc [data_json]
config/gen/call_list/opengl.in []
+cygparrot4_0_0.dll [main]bin
docs/ops/bit.pod [doc]
docs/ops/cmp.pod [doc]
docs/ops/core.pod [doc]
@@ -159,6 +160,7 @@ lib/Parrot/Config/Generated.pm [devel]lib
lib/Parrot/PMC.pm [devel]lib
lib/Parrot/Pmc2c/PCCMETHOD_BITS.pm [devel]lib
libparrot.dll [main]bin
+libparrot.dll.a [main]lib
libparrot.lib [main]bin
runtime/parrot/dynext/bit_ops.bundle [library]
runtime/parrot/dynext/bit_ops.dll [library]
View
4 README
@@ -1,4 +1,4 @@
-This is Parrot, version 3.11.0
+This is Parrot, version 4.0.0
------------------------------
Parrot is Copyright (C) 2001-2011, Parrot Foundation.
@@ -170,8 +170,8 @@ WEB SITES
The following web sites have all the information you need about Parrot:
http://www.parrot.org/
- http://trac.parrot.org/
http://docs.parrot.org/
+ https://github.com/parrot/parrot/
Have fun,
The Parrot Team.
View
2  RESPONSIBLE_PARTIES
@@ -6,7 +6,7 @@ commit access, just those who have a role they've taken responsibility
for.
See docs/project/roles_responsibilities.pod for role definitions, and
-https://trac.parrot.org/parrot/wiki/Languages for language authors/maintainers.
+https://github.com/parrot/parrot/wiki/Languages for language authors/maintainers.
Project Team
View
6 TODO
@@ -1,9 +1,9 @@
-All todo items should have a corresponding trac ticket. See the current list:
+All todo items should have a corresponding github issue. See the current list:
- https://trac.parrot.org/parrot/report/9
+ https://github.com/parrot/parrot/issues?labels=todo
To open a new todo ticket, use
- https://trac.parrot.org/
+ https://github.com/parrot/parrot/issues/new
View
2  VERSION
@@ -1 +1 @@
-3.11.0
+4.0.0
View
93 api.yaml
@@ -12,7 +12,7 @@
tags:
- 'PMC'
- 'experimental'
- ticket: 'http://trac.parrot.org/parrot/ticket/2034'
+ ticket: 'https://github.com/parrot/parrot/issues/651'
-
name: '"Advanced" NCI parameter types'
eligible: '3.1'
@@ -23,7 +23,7 @@
-
name: 'Pointer, UnManagedStruct, and ManagedStruct'
eligible: '3.4'
- ticket: 'http://trac.parrot.org/parrot/ticket/2035'
+ ticket: 'https://github.com/parrot/parrot/issues/657'
-
name: 'add write barrier to all PMCs that write in unusual VTABLE functions'
eligible: '3.4'
@@ -44,7 +44,7 @@
detection:
regex:
pir: '^ ".sub" .+ ":init"'
- ticket: 'https://trac.parrot.org/parrot/ticket/1896'
+ ticket: 'https://github.com/parrot/parrot/issues/469'
-
name: '":load" and ":init" Sub flags doing different things'
eligible: '3.1'
@@ -63,9 +63,9 @@
- 'PIR'
- 'syntax'
tickets:
- - 'https://trac.parrot.org/parrot/ticket/1033'
- - 'https://trac.parrot.org/parrot/ticket/1704'
- - 'https://trac.parrot.org/parrot/ticket/1705'
+ - 'https://github.com/parrot/parrot/issues/600'
+ - 'https://github.com/parrot/parrot/issues/571'
+ - 'https://github.com/parrot/parrot/issues/578'
-
name: 'Action methods in rules'
note: 'Per Synopsis 5, all regexes will have an implied {*} token at the end which cause invocation of an action method if a ":action" object is supplied.'
@@ -79,7 +79,7 @@
tags:
- 'library'
- 'experimental'
- ticket: 'https://trac.parrot.org/parrot/ticket/1598'
+ ticket: 'https://github.com/parrot/parrot/issues/375'
-
name: 'Assigning to registers in parrot_debugger'
tags:
@@ -112,13 +112,13 @@
detection:
regex:
pir: 'new\s\[?\''Complex\''\]?'
- ticket: 'https://trac.parrot.org/parrot/ticket/1892'
+ ticket: 'https://github.com/parrot/parrot/issues/462'
-
name: 'Cross-HLL library loading'
tags:
- 'library'
- 'experimental'
- ticket: 'https://trac.parrot.org/parrot/ticket/754'
+ ticket: 'https://github.com/parrot/parrot/issues/266'
-
name: 'GC timely destruction'
eligible: '3.1'
@@ -126,14 +126,14 @@
tags:
- 'deprecated'
- 'functions'
- ticket: 'https://trac.parrot.org/parrot/ticket/1800'
+ ticket: 'https://github.com/parrot/parrot/issues/278'
-
name: 'GC_SYS_NAME option to interpinfo_s_i'
note: 'Ability to get the string name of the current GC core from the interpinfo_s_i. See r43900 and r43904 for details.'
tags:
- 'Opcodes'
- 'experimental'
- ticket: 'https://trac.parrot.org/parrot/ticket/1581'
+ ticket: 'https://github.com/parrot/parrot/issues/347'
-
name: 'IPv6 Support'
tags:
@@ -146,13 +146,13 @@
tags:
- 'deprecated'
- 'library'
- ticket: 'https://trac.parrot.org/parrot/ticket/508'
+ ticket: 'https://github.com/parrot/parrot/issues/494'
-
name: 'LWP, https::Message, URI & URI::Escape'
tags:
- 'library'
- 'experimental'
- ticket: 'https://trac.parrot.org/parrot/ticket/1637'
+ ticket: 'https://github.com/parrot/parrot/issues/431'
-
name: 'ManagedStruct reallocations based on shape changes'
eligible: '2.4'
@@ -160,13 +160,13 @@
tags:
- 'deprecated'
- 'PMC'
- ticket: 'https://trac.parrot.org/parrot/ticket/1554'
+ ticket: 'https://github.com/parrot/parrot/issues/319'
-
name: 'MappedByteArray PMC'
tags:
- 'PMC'
- 'experimental'
- ticket: 'https://trac.parrot.org/parrot/ticket/1877'
+ ticket: 'https://github.com/parrot/parrot/issues/420'
-
name: 'Meta-model implementation used by PCT'
eligible: '2.7'
@@ -189,7 +189,7 @@
tags:
- 'opcodes'
- 'experimental'
- ticket: 'https://trac.parrot.org/parrot/ticket/1582'
+ ticket: 'https://github.com/parrot/parrot/issues/354'
-
name: 'OpenGL bindings and libraries'
tags:
@@ -227,7 +227,7 @@
tags:
- 'deprecated'
- 'compiler'
- ticket: 'https://trac.parrot.org/parrot/ticket/463'
+ ticket: 'https://github.com/parrot/parrot/issues/464'
-
name: 'PCT::HLLCompiler stages'
eligible: '1.1'
@@ -256,7 +256,7 @@
tags:
- 'PMC'
- 'experimental'
- ticket: 'https://trac.parrot.org/parrot/ticket/1599'
+ ticket: 'https://github.com/parrot/parrot/issues/382'
-
name: 'Parrot_load_bytecode_file'
note: 'Load a .pbc file into the interpreter. Experimental.'
@@ -310,7 +310,7 @@
tags:
- 'deprecated'
- 'PMC'
- ticket: 'https://trac.parrot.org/parrot/ticket/1553'
+ ticket: 'https://github.com/parrot/parrot/issues/311'
-
name: 'UnManagedStruct handling nested structure'
eligible: '2.4'
@@ -318,7 +318,7 @@
tags:
- 'PMC'
- 'deprecated'
- ticket: 'https://trac.parrot.org/parrot/ticket/1551'
+ ticket: 'https://github.com/parrot/parrot/issues/298'
-
name: 'UnManagedStruct initializer structure'
eligible: '2.4'
@@ -326,7 +326,7 @@
tags:
- 'deprecated'
- 'PMC'
- ticket: 'https://trac.parrot.org/parrot/ticket/1552'
+ ticket: 'https://github.com/parrot/parrot/issues/305'
-
name: 'charset, charsetname, find_charset, trans_charset'
eligible: '2.10'
@@ -352,7 +352,7 @@
tags:
- 'deprecated'
- 'opcodes'
- ticket: 'https://trac.parrot.org/parrot/ticket/1565'
+ ticket: 'https://github.com/parrot/parrot/issues/340'
-
name: 'finalize'
note: 'Finalize exception handler, unrolling inner runloops if needed.'
@@ -377,7 +377,7 @@
tags:
- 'deprecated'
- 'opcodes'
- ticket: 'https://trac.parrot.org/parrot/ticket/218'
+ ticket: 'https://github.com/parrot/parrot/issues/303'
-
name: 'get_results opcode order and features'
eligible: '2.1'
@@ -411,7 +411,7 @@
tags:
- 'opcodes'
- 'experimental'
- ticket: 'https://trac.parrot.org/parrot/ticket/1583'
+ ticket: 'https://github.com/parrot/parrot/issues/361'
-
name: 'logical PMC ops'
eligible: '2.7'
@@ -434,7 +434,7 @@
tags:
- 'deprecated'
- 'functions'
- ticket: 'https://trac.parrot.org/parrot/ticket/907'
+ ticket: 'https://github.com/parrot/parrot/issues/460'
-
name: 'multiple dispatch within core PMC'
eligible: '1.1'
@@ -449,7 +449,7 @@
tags:
- 'deprecated'
- 'opcodes'
- ticket: 'https://trac.parrot.org/parrot/ticket/1548'
+ ticket: 'https://github.com/parrot/parrot/issues/291'
-
name: 'opcode numbering'
tags:
@@ -464,7 +464,7 @@
tags:
- 'deprecated'
- 'opcodes'
- ticket: 'https://trac.parrot.org/parrot/ticket/1697'
+ ticket: 'https://github.com/parrot/parrot/issues/550'
-
name: 'packfile structure'
tags:
@@ -486,7 +486,7 @@
tags:
- 'experimental'
- 'functions'
- ticket: 'https://trac.parrot.org/parrot/ticket/1996'
+ ticket: 'https://github.com/parrot/parrot/issues/602'
-
name: 'LANG search path with -L'
tags:
@@ -508,7 +508,7 @@
name : 'Eval PMC'
tags:
- 'deprecated'
- ticket: 'http://trac.parrot.org/parrot/ticket/1969'
+ ticket: 'https://github.com/parrot/parrot/issues/567'
-
name : 'PackFile_* API functions'
tags :
@@ -524,7 +524,7 @@
name : 'load_bytecode_p_s opcode'
tags :
- 'experimental'
- ticket : 'http://trac.parrot.org/parrot/ticket/2146'
+ ticket : 'https://github.com/parrot/parrot/issues/435'
-
name : 'FixedPMCArray.set_pmc'
eligible : '3.1'
@@ -535,7 +535,7 @@
-
name : 'Scalar PMC'
note : 'The Scalar PMC can be removed, so long as the behaviors of PMCs which inherit from it do not change.'
- ticket : 'https://trac.parrot.org/parrot/ticket/1754'
+ ticket : 'https://github.com/parrot/parrot/issues/672'
eligible : '3.1'
-
name : 'encoding:charset:"" string literals'
@@ -551,11 +551,11 @@
name : 'PIR compiler availability'
eligible : '3.1'
note : 'The PIR compiler (currently IMCC) will be extracted to a separately loadable component.'
- ticket : 'http://trac.parrot.org/parrot/ticket/1868'
+ ticket : 'https://github.com/parrot/parrot/issues/406'
-
name : '"constant" PObj'
eligible : '3.1'
- note :
+ note:
"constant" PObj (which is never collected) are deprecated. All PMCs and STRINGs
should be properly marked during GC.
@@ -571,7 +571,7 @@
-
name : 'Non-const STRING* arguments'
eligible : '3.1'
- note :
+ note :
Due to the immutable nature of STRINGs we are changing the internal handling to use only
const STRING pointers. This will improve optimizations possibilities for compilers,
and make parrot const-correct.
@@ -579,12 +579,12 @@
Passing of non-const STRING* arguments is deprecated and will be changed to
const STRING*. This includes (but is not limited to) all string API functions,
VTABLEs, PCC, etc
- ticket : 'http://trac.parrot.org/parrot/ticket/1906'
+ ticket : 'https://github.com/parrot/parrot/issues/483'
-
name : 'X-to-Y native PBC reading'
eligible : '3.1'
note : 'Support for PBC files optimized for alternate platforms will be dropped in favour of a universal network PBC format.'
- ticket : 'https://trac.parrot.org/parrot/ticket/1961'
+ ticket : 'https://github.com/parrot/parrot/issues/553'
-
name : 'The PIR and PASM compreg PMCs'
eligible : '3.1'
@@ -595,5 +595,26 @@
There will not be a PASM compreg anymore.
ticket : 'http://trac.parrot.org/parrot/ticket/1967'
+-
+ name : 'Interpreter API cleanup'
+ note :
+ All functions that were defined in parrot/interpreter.h have been renamed in order
+ to follow the project's coding standards.
+
+ Functions that began with "Parrot_" now begin with "Parrot_interp_"
+ For example, function C<Parrot_new> has been renamed to C<Parrot_interp_new>.
+
+ Also, "Parrot_interp_" has been prepended to all functions that didn't begin with
+ "Parrot_" for consistency. For example, function C<allocate_interpreter> has been
+ renamed to C<Parrot_interp_allocate_interpreter>.
+ Other than the above changes, the below functions were also renamed to make their
+ purpose more clear:
+ * C<interpinfo> -> C<Parrot_interp_info>
+ * C<Parrot_int_get_interp_from_pmc> -> C<Parrot_interp_get_from_pmc>
+ tags:
+ - api
+ - deprecated
+ - completed
+ ticket: 'http://trac.parrot.org/parrot/ticket/443'
View
4 compilers/imcc/api.c
@@ -43,7 +43,7 @@ static PMC * get_compreg_pmc(PARROT_INTERP, int is_pasm, int add_compreg)
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: static */
-#define GET_RAW_INTERP(p) Parrot_int_get_interp_from_pmc(p)
+#define GET_RAW_INTERP(p) Parrot_interp_get_from_pmc(p)
#define GET_INTERP(p) (PMC_IS_NULL(p) ? NULL : GET_RAW_INTERP(p))
#define IMCC_API_CALLIN(p, i) \
@@ -142,7 +142,7 @@ get_compreg_pmc(PARROT_INTERP, int is_pasm, int add_compreg)
PMC * const comp = Parrot_pmc_new_init_int(interp, enum_class_IMCCompiler, is_pasm);
if (add_compreg) {
STRING * const name = VTABLE_get_string(interp, comp);
- Parrot_set_compiler(interp, name, comp);
+ Parrot_interp_set_compiler(interp, name, comp);
}
return comp;
}
View
2  compilers/opsc/src/Ops/Trans/C.pm
@@ -76,7 +76,7 @@ method emit_c_op_funcs_header_part($fh) {
method access_arg($type, $num) {
my $access := self<arg_maps>{$type};
- die("unrecognized arg type '$type'") unless $access;
+ die("unrecognized arg type '$type' (register \$$num)") unless $access;
subst($access, /NUM/, $num);
}
View
33 config/gen/makefiles/root.in
@@ -468,8 +468,7 @@ INTERP_O_FILES = \
src/call/pcc$(O) \
src/call/args$(O) \
src/interp/inter_cb$(O) \
- src/interp/inter_create$(O) \
- src/interp/inter_misc$(O) \
+ src/interp/api$(O) \
src/call/ops$(O) \
src/call/context$(O) \
src/call/context_accessors$(O) \
@@ -549,7 +548,7 @@ INSTALLABLEWINXED = .@slash@installable_winxed$(EXE)
# Libraries
LIBPARROT_STATIC = @blib_dir@/@libparrot_static@
#IF(darwin):export DYLD_LIBRARY_PATH := @build_dir@/@blib_dir@:$(DYLD_LIBRARY_PATH)
-#IF(win32 or msys):LIBPARROT_SHARED = @libparrot_shared@
+#IF(win32 or msys or cygwin):LIBPARROT_SHARED = @libparrot_shared@
#ELSE:LIBPARROT_SHARED = @blib_dir@/@libparrot_shared@
# This line controls whether a static or shared library is built
@@ -685,8 +684,7 @@ STR_FILES = \
src/call/pcc.str \
src/call/args.str \
src/interp/inter_cb.str \
- src/interp/inter_create.str \
- src/interp/inter_misc.str \
+ src/interp/api.str \
src/io/api.str \
src/key.str \
src/library.str \
@@ -810,7 +808,7 @@ help :
@echo "Fetch from source repository:"
@echo " update: git pull."
@echo " status: git status."
- @echo " patch: Create a patch to attach to https://trac.parrot.org/"
+ @echo " patch: Create a patch to attach to https://github.com/parrot/parrot/issues"
@echo ""
@echo "Development:"
@echo " lint: An alias for sunlint."
@@ -922,6 +920,7 @@ $(MINIPARROT) : frontend/parrot/main$(O) include/parrot/api.h include/parrot/lon
$(RPATH_BLIB) $(ALL_PARROT_LIBS) $(LINKFLAGS)
#IF(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
+#IF(cygwin and optimize):$(INSTALLABLEPARROT) : LINK += -s
$(INSTALLABLEPARROT) : frontend/parrot2/main$(O) $(GEN_HEADERS) $(LIBPARROT) \
src/install_config$(O) src/longopt$(O) \
frontend/parrot2/prt0.pbc$(O) $(PARROT)
@@ -1064,6 +1063,7 @@ $(LIBPARROT_STATIC) : $(O_FILES)
$(LIBPARROT_SHARED) : $(O_FILES)
$(MKPATH) @blib_dir@
$(LD) $(LD_SHARE_FLAGS) $(LDFLAGS) @ld_out@$@ @libparrot_soname@ \
+#IF(cygwin and optimize): -s \
#IF(cygwin): -Wl,--out-implib=libparrot.dll.a \
#IF(win32 and cc==gcc): -Wl,--out-implib=libparrot.lib \
$(O_FILES) $(C_LIBS) $(ICU_SHARED)
@@ -1102,6 +1102,7 @@ $(PDB) : frontend/parrot_debugger/main$(O) src/parrot_config$(O) $(LIBPARROT)
$(RPATH_BLIB) $(ALL_PARROT_LIBS) $(LINKFLAGS)
#IF(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
+#IF(cygwin and optimize):$(INSTALLABLEPDB) : LINK += -s
$(INSTALLABLEPDB) : frontend/parrot_debugger/main$(O) $(LIBPARROT) src/parrot_config$(O)
$(LINK) @ld_out@$@ \
frontend/parrot_debugger/main$(O) \
@@ -1126,6 +1127,7 @@ $(DIS) : frontend/pbc_disassemble/main$(O) $(LIBPARROT)
$(RPATH_BLIB) $(ALL_PARROT_LIBS) $(LINKFLAGS)
#IF(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
+#IF(cygwin and optimize):$(INSTALLABLEDIS) : LINK += -s
$(INSTALLABLEDIS) : frontend/pbc_disassemble/main$(O) \
src/install_config$(O) $(LIBPARROT)
$(LINK) @ld_out@$@ \
@@ -1156,6 +1158,7 @@ frontend/pbc_dump/main$(O) : \
$(INC_DIR)/runcore_api.h \
frontend/pbc_dump/main.c
+#IF(cygwin and optimize):$(INSTALLABLEPDUMP) : LINK += -s
$(INSTALLABLEPDUMP) : frontend/pbc_dump/main$(O) frontend/pbc_dump/packdump$(O) \
src/install_config$(O) $(LIBPARROT)
$(LINK) @ld_out@$@ \
@@ -1179,6 +1182,7 @@ $(PBC_MERGE) : frontend/pbc_merge/main$(O) $(LIBPARROT) src/parrot_config$(O)
$(RPATH_BLIB) $(ALL_PARROT_LIBS) $(LINK_DYNAMIC) $(LINKFLAGS)
#IF(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
+#IF(cygwin and optimize):$(INSTALLABLEPBC_MERGE) : LINK += -s
$(INSTALLABLEPBC_MERGE) : frontend/pbc_merge/main$(O) $(LIBPARROT) $(INSTALLABLECONFIG)
$(LINK) @ld_out@$@ \
frontend/pbc_merge/main$(O) \
@@ -1591,21 +1595,16 @@ src/interp/inter_cb$(O) : $(PARROT_H_HEADERS) \
$(INC_PMC_DIR)/pmc_callback.h \
src/interp/inter_cb.str src/interp/inter_cb.c
-src/interp/inter_misc$(O) : $(PARROT_H_HEADERS) \
- src/interp/inter_misc.c \
- src/interp/inter_misc.str \
+src/interp/api$(O) : $(PARROT_H_HEADERS) \
+ src/interp/api.c \
+ src/interp/api.str \
include/imcc/embed.h \
include/imcc/yyscanner.h \
$(INC_DIR)/runcore_api.h \
- $(INC_PMC_DIR)/pmc_parrotinterpreter.h
-
-src/interp/inter_create$(O) : $(PARROT_H_HEADERS) \
- $(INC_DIR)/oplib/core_ops.h \
+ $(INC_PMC_DIR)/pmc_parrotinterpreter.h \
+ $(INC_DIR)/oplib/core_ops.h \
src/gc/gc_private.h \
- src/interp/inter_create.c \
- src/interp/inter_create.str \
- $(INC_DIR)/runcore_api.h \
- src/gc/variable_size_pool.h
+ src/gc/variable_size_pool.h
src/call/ops$(O) : $(INC_DIR)/oplib/ops.h \
$(PARROT_H_HEADERS) $(INC_PMC_DIR)/pmc_continuation.h \
View
3  config/init/hints.pm
@@ -63,6 +63,9 @@ sub runstep {
$hints_used++;
}
}
+ elsif ( $conf->options->get('hintsfile') ) {
+ die "No $hints_file found";
+ }
else {
$conf->debug("No $hints_file found. ");
}
View
9 config/init/hints/cygwin.pm
@@ -18,8 +18,8 @@ sub runstep {
my $build_dir = $conf->data->get('build_dir');
$build_dir =~ s/ /\\ /g;
- my $bindir = $conf->data->get('bindir');
- $bindir =~ s/ /\\ /g;
+ my $libdir = $conf->data->get('libdir');
+ $libdir =~ s/ /\\ /g;
my $libparrot_shared = $conf->data->get('libparrot_shared');
# force cyg prefix
$libparrot_shared =~ s/^lib/cyg/g;
@@ -49,11 +49,10 @@ sub runstep {
sym_export => '__declspec(dllexport)',
sym_import => '__declspec(dllimport)',
libparrot_shared => $libparrot_shared,
- blib_dir => '.',
libparrot_ldflags => '-L' . $build_dir . ' -lparrot',
- inst_libparrot_ldflags => '-L' . $bindir . ' -lparrot',
+ inst_libparrot_ldflags => '-L' . $libdir . ' -lparrot',
libparrot_linkflags => '-L' . $build_dir . ' -lparrot',
- inst_libparrot_linkflags => '-L' . $bindir . ' -lparrot',
+ inst_libparrot_linkflags => '-L' . $libdir . ' -lparrot',
);
# inet_aton needs to be defined on Cygwin.
View
4 docs/book/draft/appe_source_code.pod
@@ -15,7 +15,7 @@ If you plan to get involved in development, you'll want to check out
the source from the git repository directly. Anyone can get
anonymous access to read the files and download a working copy to
explore and test. For commit access, volunteers need a
-U<https://trac.parrot.org> username, and need to be approved by a
+U<https://github.com> username, and need to be approved by a
Metacommitter. To download the most recent version from git, type this
command into your terminal N<This is for Linux users, on Mac or
Windows systems, follow the instructions from your git client>:
@@ -42,7 +42,7 @@ There are a number of existing language implementations for Parrot:
Perl 6, Python ("Pynie"), Ruby ("Cardinal"), PHP ("Pipp"), Lisp, Lua,
Tcl ("partcl"), WMLScript, Forth, Scheme, Befunge, BASIC, and many
others. These language compilers are in various stages of partial
-completion. The page L<https://trac.parrot.org/parrot/wiki/Languages>
+completion. The page L<https://github.com/parrot/parrot/wiki/Languages>
provides meta information on these languages and where to find them.
If you have a language you're particularly interested to see implemented
on Parrot, you can see how far along the effort is, or you can start the
View
14 docs/book/draft/ch01_introduction.pod
@@ -55,13 +55,13 @@ questions or see how things are progressing.
=head3 Issue Tracking & Wiki
-X<trac.parrot.org website>
-X<issue tracking (trac.parrot.org)>
+X<github.com wiki>
+X<issue tracking (github.com)>
-Parrot developers track issues with a Trac site at U<https://trac.parrot.org/>.
-Users can submit new tickets and track the status of existing tickets. The
-site also includes a wiki used in project development, a source code browser,
-and the project roadmap.
+Parrot developers track issues using the Github issues system at
+L<https://github.com/parrot/parrot/issues/> Users can submit new tickets and
+track the status of existing tickets. Github also provides a wiki used in
+project development and a source code browser.
=head2 Parrot Development
@@ -150,7 +150,7 @@ Developers who work on any of the high-level languages that target
ParrotE<mdash>such as Lua, Perl, PHP, Python, Ruby, or TclE<mdash>are
high-level language developers. The Parrot repository includes a few example
languages. A full list of languages is available at
-U<https://trac.parrot.org/parrot/wiki/Languages>.
+L<https://github.com/parrot/parrot/wiki/Languages>
=item Build Manager
View
14 docs/book/pct/ch01_introduction.pod
@@ -55,13 +55,13 @@ questions or see how things are progressing.
=head3 Issue Tracking & Wiki
-X<trac.parrot.org website>
-X<issue tracking (trac.parrot.org)>
+X<github.com wiki>
+X<issue tracking (github.com)>
-Parrot developers track issues with a Trac site at U<https://trac.parrot.org/>.
-Users can submit new tickets and track the status of existing tickets. The
-site also includes a wiki used in project development, a source code browser,
-and the project roadmap.
+Parrot developers track issues using the Github issues system at
+L<https://github.com/parrot/parrot/issues/> Users can submit new tickets and
+track the status of existing tickets. Github also provides a wiki used in
+project development and a source code browser.
=head2 Parrot Development
@@ -150,7 +150,7 @@ Developers who work on any of the high-level languages that target
ParrotE<mdash>such as Lua, Perl, PHP, Python, Ruby, or TclE<mdash>are
high-level language developers. The Parrot repository includes a few example
languages. A full list of languages is available at
-U<https://trac.parrot.org/parrot/wiki/Languages>.
+L<https://github.com/parrot/parrot/wiki/Languages>
=item Build Manager
View
15 docs/book/pir/ch01_introduction.pod
@@ -69,14 +69,13 @@ Parrot in real time.
=head3 Issue Tracking & Wiki
-X<trac.parrot.org website>
-X<issue tracking (trac.parrot.org)>
-
-Parrot developers track bugs, feature requests, and roadmap tasks at
-U<https://trac.parrot.org/>, the open source Trac issue tracker. Users
-can submit new tickets and track the status of existing tickets. The
-site also includes a wiki used in project development, a source code
-browser, and the project roadmap.
+X<github.com wiki>
+X<issue tracking (github.com)>
+
+Parrot developers track issues using the Github issues system at
+L<https://github.com/parrot/parrot/issues/> Users can submit new tickets and
+track the status of existing tickets. Github also provides a wiki used in
+project development and a source code browser.
=head2 Parrot Development
View
4 docs/deprecations/deprecations.pod
@@ -66,7 +66,7 @@ notice here and F<deprecations_3_0.pod>, so the list should
be exhaustive.
If you find a deprecation that should be listed here, file a ticket
- L<http://trac.parrot.org/parrot/newticket>
+ L<https://github.com/parrot/parrot/issues/new>
or hop on #parrot on irc.parrot.org and let us know.
=over 4
@@ -146,7 +146,7 @@ This list is a summary. A more complete description and migration path for
each change is at F<deprecations_2_9.pod>.
If you find a deprecation that should be listed here, file a ticket
- L<http://trac.parrot.org/parrot/newticket>
+ L<https://github.com/parrot/parrot/issues/new>
or hop on #parrot on irc.parrot.org and let us know.
=over 4
View
2  docs/faq.pod
@@ -39,7 +39,7 @@ PIR is a high-level assembly language. See the L<examples> directory.
While the languages that are shipped with our pre-release versions of
parrot are in varying states of development, many of them are quite
-functional. See L<https://trac.parrot.org/parrot/wiki/Languages>
+functional. See L<https://github.com/parrot/parrot/wiki/Languages>
for information about the various languages that are targeting parrot.
=head2 What language is Parrot written in?
View
2  docs/gettingstarted.pod
@@ -194,4 +194,4 @@ See F<docs/submissions.pod> for details.
=head2 What other useful resources are there for developers?
A number of other useful resources that can be found via on the Parrot
-wiki, located at L<http://trac.parrot.org/parrot/wiki>.
+wiki, located at L<https://github.com/parrot/parrot/wiki>
View
6 docs/intro.pod
@@ -131,9 +131,9 @@ with. When this completes, you will have a working C<parrot> executable.
Please report any problems that you encounter while building Parrot so the
developers can fix them. You can do this by creating a login and opening
-a new ticket at L<https://trac.parrot.org>. Please include the F<myconfig>
-file that was generated as part of the build process and any errors that you
-observed.
+a new ticket at L<https://github.com/parrot/parrot/issues/new>. Please
+include the F<myconfig> file that was generated as part of the build
+process and any errors that you observed.
=head2 The Parrot test suite
View
2  docs/parrot.pod
@@ -135,8 +135,6 @@ See:
=item * L<http://www.parrot.org/>
-=item * L<https://trac.parrot.org/>
-
=item * L<http://github.com/parrot/parrot>
=back
View
5 docs/parrothist.pod
@@ -129,11 +129,14 @@ Starred release numbers indicate supported releases.
Gerd 3.4.0 2011-May-17 "Pacific Parakeet"
cotto 3.5.0 2011-Jun-21 "Menelaus"
- jkeenan 3.6.0 * 2011-Jul-19 "Pájaros del Caribe"
+ jkeenan 3.6.0 * 2011-Jul-19 "Pájaros del Caribe"
coke 3.7.0 2011-Aug-16 "Wanda"
soh_cah_toa 3.8.0 2011-Sep-20 "Magrathea"
dukeleto 3.9.0 * 2011-Oct-18 "Archaeopteryx"
Whiteknight 3.10.0 2011-Nov-15 "Apple Pi"
cotto 3.11.0 2011-Dec-20 "Duct Tape"
+ Whiteknight 4.0.0 * 2011-Jan-17 "Hyperstasis"
+
+
=cut
View
4 docs/pdds/draft/pdd06_pasm.pod
@@ -179,9 +179,7 @@ the instruction if used on PMC registers.
In all cases, the letters x, y, and z refer to register numbers. The letter t
refers to a generic register (P, S, I, or N). A lowercase p, s, i, or n means
either a register or constant of the appropriate type (PMC, string, integer,
-or number)
-
-L<docs/ops> for a list of current parrot opcodes,
+or number).
=head2 References
View
2  docs/project/cage_cleaners_guide.pod
@@ -367,6 +367,6 @@ Paul Cochrane a.k.a. ptc; original document by Andy Lester
=head1 SEE ALSO
F<docs/project/roles_responsibilities.pod>, F<RESPONSIBLE_PARTIES>
-and the list of Cage items in Trac L<http://trac.parrot.org>.
+and the list of Cage items in github L<https://github.com/parrot/parrot/issues?labels=cage&state=open>.
=cut
View
29 docs/project/metacommitter_guide.pod
@@ -47,34 +47,9 @@ pending list-admin approval.
=head2 To manage the list of Metacommitters
-Only existing Metacommitters can perform this activity.
+To make somebody a new metacommitter, add their github account to the "Owners"
+team at L<https://github.com/organizations/parrot/teams/>.
-=over 4
-
-=item 1
-
-Navigate to the Admin -> Permissions page
-L<https://trac.parrot.org/parrot/admin/general/perm> and add/remove
-"admin" users as desired.
-
-=back
-
-=head2 To manage the list of Bug Admins.
-
-Only existing Metacommitters can perform this activity.
-
-=over 4
-
-=item 1
-
-Navigate to the Admin -> Permissions page
-L<https://trac.parrot.org/parrot/admin/general/perm> and add/remove
-"developer" users as desired.
-
-Verify that the username is the one the user intends to use to
-administer tickets. (Some bugadmins have multiple Trac accounts.)
-
-=back
=head1 SEE ALSO
View
3  docs/project/release_manager_guide.pod
@@ -64,7 +64,7 @@ C<parrot-dev@lists.parrot.org> and to the IRC channel C<#parrot>. Ask whether
there are any showstopping bugs. Check in again with the language
project leads. It's also good to ask for updates to F<ChangeLog>, F<CREDITS>,
F<PLATFORMS>, F<RESPONSIBLE_PARTIES>, F<api.yaml> and
-L<http://trac.parrot.org/parrot/wiki/Languages>.
+L<https://github.com/parrot/parrot/wiki/Languages>.
=item 6
@@ -513,7 +513,6 @@ L<http://www.google.com/calendar/render?cid=ldhctdamsgfg5a1cord52po9h8@group.cal
Versions with an asterisk (*) are supported releases:
- - Jan 17, 2012 - 4.0.0 - whiteknight
- Feb 21, 2012 - 4.1.0 - alvis
- Mar 20, 2012 - 4.2.0 - dukeleto
- Apr 17, 2012 - 4.3.0 - cotto
View
10 docs/project/ticket_triaging.pod
@@ -16,15 +16,19 @@ F<docs/submissions.pod>.
=head1 WHAT ABOUT TRAC?
-Our preferred method of bug tracking at this point is trac:
-L<https://trac.parrot.org/>
+Our preferred method of bug tracking at this point is github issues:
+L<https://github.com/parrot/parrot/issues/>
All Parrot developers are expected to pitch in and help keep the ticket tracker
in a healthy state. I<This means you!> Most of the document below still makes
sense in terms of activities in trac, but the specifics are of course different
with the new system.
-Our previous bug tracking system was RT. In November 2009 all remaining RT
+Our previous bug tracking system was trac, hosted at
+L<https://trac.parrot.org/>. In January 2012 the trac tickets have been
+migrated to github issues.
+
+The bug tracking system before trac was RT. In November 2009 all remaining RT
tickets were closed, with many being reopened in Trac. No new issues should
be opened in RT, but the old system is available at L<https://rt.perl.org>.
The Parrot issues are in the queue I<parrot>.
View
162 docs/submissions.pod
@@ -18,10 +18,7 @@ simplest way to use it is to run
in the distribution's root directory, and follow the prompts.
-If you just want to use email to create the bug report, send an email to
-L<tickets@parrot.org>.
-
-If you know how to fix the problem you encountered, then think about
+If you know how to fix the problem you encountered, then think about
submitting a patch, or (see below) getting commit privileges.
=head1 A Note on Random Failures
@@ -84,11 +81,9 @@ for whatever the distribution's parent directory is called on your machine.
=item C<git>
-If you are working with a git repository of parrot then please generate
-your patch with C<git diff>.
-
- cd parrot
- git diff > my_contribution.patch
+If you are working with a git repository of parrot then please submit your
+patch as a pull request on github. You can find instructions at
+L<http://help.github.com/send-pull-requests/>
=item Single C<diff>
@@ -128,57 +123,9 @@ The format for entries in F<CREDITS> is defined at the top of the file.
=head1 How To Submit A Patch
-=over 4
-
-=item 1
-
-Go to Parrot's ticket tracking system at
-L<https://trac.parrot.org/parrot/>. Log in, or create an account if you
-don't have one yet.
-
-=item 2
-
-If there is already a ticket for the bug or feature that your patch relates
-to, just attach the patch directly to the ticket.
-
-=item 3
-
-Otherwise select "New Ticket" at the top of the site.
-L<https://trac.parrot.org/parrot/newticket>
-
-=item 4
-
-Give a clear and concise Summary. You do B<NOT> need to prefix the Summary
-with a C<[PATCH]> identifier. Instead, in the lower-right corner of the
-F<newticket> page, select status C<new> in the F<Patch status> drop-down box.
-
-=item 5
-
-The Description should contain an explanation of the purpose of the patch, and
-a list of all files affected with summary of the changes made in each file.
-Optionally, the output of the C<diffstat(1)> utility when run on your patch(s)
-may be included at the bottom of the message body.
-
-=item 6
-
-Set the Type of the ticket to "patch". Set other relevant drop-down
-menus, such as Version (the version of Parrot where you encountered the
-problem), Platform, or Severity. As mentioned above, select status C<new> in
-the F<Patch status> drop-down box.
-
-=item 7
-
-Check the box for "I have files to attach to this ticket". Double-check
-that you've actually done this, because it's easy to forget.
-
-B<DO NOT> paste the patch file content into the Description.
-
-=item 8
-
-Click the "Create ticket" button. On the next page attach your patch
-file(s).
-
-=back
+The preferrred method to submit matches to Parrot is as pull requests via
+github. Please follow the instructions at
+L<http://help.github.com/send-pull-requests/>.
=head1 Applying Patches
@@ -216,88 +163,21 @@ the MANIFEST and MANIFEST.SKIP file should be regenerated with:
perl tools/dev/mk_manifest_and_skip.pl
-=head1 How To Submit Something New
-
-If you have a new feature to add to Parrot, such as a new test.
-
-=over
-
-=item 1
-
-Add your new file path(s), relative to F<parrot>, to the file MANIFEST. Create
-a patch for the MANIFEST file according to the instructions in B<How To Submit
-A Patch>.
-
-=item 2
-
-If you have a new test script ending in C<.t>, some mailers may become confused
-and consider it an application/x-troff. One way around this (for *nix users) is
-to diff the file against /dev/null like this:
-
- cd parrot
- diff -u /dev/null newfile.t > newfile.patch
-
-=item 3
-
-Go to Parrot's ticket tracking system at
-L<https://trac.parrot.org/parrot/>. Log in, or create an account if you
-don't have one yet.
-
-=item 4
-
-Select "New Ticket" L<https://trac.parrot.org/parrot/newticket>.
-
-=item 5
-
-Give a clear and concise Summary.
-
-Prefix it with a C<[NEW]> identifier.
-
-=item 6
-
-The Description should contain an explanation of the purpose of the feature
-you are adding. Optionally, include the output of the C<diffstat(1)> utility
-when run on your patch(es).
-
-=item 7
-
-Set the Type of the ticket to "patch". Set other relevant drop-down
-menus, such as Version, Platform, or Severity.
-
-=item 8
-
-Check the box for "I have files to attach to this ticket"
-
-Double-check that you've actually done this, because it's easy to forget.
-
-B<DO NOT> paste the content of the new file or files into the body of the
-message.
-
-=item 9
-
-Click the "Create ticket" button. On the next page attach the patch for
-MANIFEST and your new file(s).
-
-=back
-
=head1 What Happens Next?
-If you created a new ticket for the submission, you will be taken to the page
-for the new ticket and can check on the progress of your submission there.
-This identifier should be used in all correspondence concerning the submission.
-
-Everyone on Trac sees the submission and can comment on it. A developer with
-git commit privileges can commit it to git once it is clear that it is the
-right thing to do.
-
-However developers with commit privileges may not commit your changes
-immediately if they are large or complex, as we need time for peer review.
+If you created a new issue, you will be taken to the issue page and can
+check on the progress of discussion there. The issue number should be
+used in all out-of-band correspondence concerning the issue (e.g., in
+email to the C<parrot-dev> mailing list). Otherwise, everyone on the
+parrot project can see the issue and can comment on it.
-A list of active tickets can be found here:
-L<http://trac.parrot.org/parrot/report/1>
+A developer with git commit privileges can merge your changes into the
+main parrot repository, once it is clear that this is the right thing to
+do. However your pull request may not be processed right away if the
+changes are large or complex, as we need time for peer review.
-A list of all the unresolved patches is at:
-L<http://trac.parrot.org/parrot/report/15>
+A list of open issues can be found here:
+L<https://github.com/parrot/parrot/issues?state=open>
=head1 Patches for the Parrot website
@@ -313,12 +193,12 @@ the procedure:
=item 1
-Submit several high quality patches (and have them committed) via the process
-described in this document. This process may take weeks or months.
+Obtain a github account at L<http://github.com>
=item 2
-Obtain a Trac account at L<https://trac.parrot.org/parrot>
+Submit several high quality patches (and have them committed) via the process
+described in this document. This process may take weeks or months.
=item 3
View
9 docs/tests.pod
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2007, Parrot Foundation.
+# Copyright (C) 2001-2012, Parrot Foundation.
=head1 NAME
@@ -17,8 +17,7 @@ The easy way to test parrot is running C<make test>. If you have updated your
code recently and tests began failing, go for a C<make realclean> and recompile
parrot before complaining.
-C<make languages-test> runs the test suite for most language implementations
-in the languages directory.
+C<make all_hll_test> runs the test suite for all known working HLLs and libraries.
=head2 Submitting smolder test results
@@ -32,9 +31,7 @@ website.
=head1 Location of the test files
The parrot test files, the F<*.t> files, can be found in the F<t> directory.
-A quick overview over the subdirs in F<t> can be found in F<t/README>.
-
-The language implementations usually have their test files in F<languages/*/t>.
+A quick overview about each test directory in F<t> can be found in F<t/README>.
New tests should be added to an existing F<*.t> file. If a previously untested
feature is tested, it might also make sense to create a new F<*.t> file. You
View
2  docs/translations/README.BGR
@@ -169,8 +169,8 @@ docs/submissions.pod. Тези документи са в POD формат. М
Тези сайтове съдържат всичките нужна информация за Parrot:
http://www.parrot.org/
- http://trac.parrot.org/
http://docs.parrot.org/
+ https://github.com/parrot/parrot/
Забавлявайте се,
Екипът на Parrot.
View
2  docs/translations/README.deutsch
@@ -184,8 +184,8 @@ WEBSEITEN
Die folgenden Webseiten geben alle Informationen, die Sie brauchen, über Parrot:
http://www.parrot.org/
- http://trac.parrot.org/
http://docs.parrot.org/
+ https://github.com/parrot/parrot/
Viel Spaß,
Ihr Parrot-Team
View
2  docs/translations/README.espanol
@@ -176,8 +176,8 @@ SITIOS WEB
Los siguientes sitios web contienen toda la información que necesitas sobre Parrot:
http://www.parrot.org/
- http://trac.parrot.org/
http://docs.parrot.org/
+ https://github.com/parrot/parrot/
Que se diviertan,
El equipo de Parrot.
View
2  docs/translations/README.francais
@@ -182,8 +182,8 @@ SITES WEB
Les sites web suivants contiennent toutes les informations dont vous pourriez
avoir besoin sur Parrot:
http://www.parrot.org/
- http://trac.parrot.org/
http://docs.parrot.org/
+ https://github.com/parrot/parrot/
Amusez vous bien,
L'Équipe Parrot.
View
2  docs/translations/README.polski
@@ -179,8 +179,8 @@ STRONY INTERNETOWE
Następujące strony przechowują wszelkie informacje o Parrocie, jakie mogą
być Ci potrzebne:
http://www.parrot.org/
- http://trac.parrot.org/
http://docs.parrot.org/
+ https://github.com/parrot/parrot/
Miłej zabawy,
The Parrot Team.
View
2  docs/translations/README.pt-BR
@@ -184,8 +184,8 @@ WEB SITES
Os seguintes sites contém todas as informações que você precisa saber
sobre Parrot.
http://www.parrot.org/
- http://trac.parrot.org/
http://docs.parrot.org/
+ https://github.com/parrot/parrot/
Se divirta,
A equipe do Parrot.
View
4 examples/languages/abc/setup.pir
@@ -32,8 +32,8 @@ See F<runtime/library/distutils.pir>.
$P0['license_uri'] = 'http://www.perlfoundation.org/artistic_license_2_0'
$P0['copyright_holder'] = 'Parrot Foundation'
$P0['checkout_uri'] = 'https://github.com/parrot/parrot/tree/master/examples/languages/abc'
- $P0['browser_uri'] = 'http://trac.parrot.org/parrot/browser/trunk/examples/languages/abc'
- $P0['project_uri'] = 'http://trac.parrot.org/parrot/browser/trunk/examples/languages/abc'
+ $P0['browser_uri'] = 'https://github.com/parrot/parrot/tree/master/examples/languages/abc'
+ $P0['project_uri'] = 'https://github.com/parrot/parrot/tree/master/examples/languages/abc'
# build
$P1 = new 'Hash'
View
2  examples/languages/squaak/doc/tutorial_episode_1.pod
@@ -273,7 +273,7 @@ F<compilers/pct/src/PCT/HLLCompiler.pir>.
=item * Perl 6/NQP rules syntax: Synopsis 5 at http://perlcabal.org/syn/S05.html or http://svn.pugscode.org/pugs/docs/Perl6/Spec/S05-regex.pod
-=item * List of HLL projects: http://trac.parrot.org/parrot/wiki/Languages
+=item * List of HLL projects: https://github.com/parrot/parrot/wiki/Languages
=back
View
6 examples/languages/squaak/doc/tutorial_episode_4.pod
@@ -1,4 +1,4 @@
-# Copyright (C) 2008, Parrot Foundation.
+# Copyright (C) 2008-2012, Parrot Foundation.
=head1 Episode 4: PAST Nodes and More Statements
@@ -306,8 +306,8 @@ action methods.
## generate instruction to retrieve the exception object (and the
## exception message, that is passed automatically in PIR, this is stored
## into $S0 (but not used).
- my $pir := " .get_results (%r, $S0)\n"
- ~ " store_lex '" ~ $exc.name()
+ my $pir := ' .get_results (%r, $S0)\n'
+ ~ "\n store_lex '" ~ $exc.name()
~ "', %r";
$catch.unshift( PAST::Op.new( :inline($pir), :node($/) ) );
View
4 examples/languages/squaak/doc/tutorial_episode_5.pod
@@ -191,7 +191,7 @@ Now we need to modify our TOP rule to call begin_TOP.
rule TOP {
<.begin_TOP>
- <statementlist>
+ <statement_list>
[ $ || <.panic: "Syntax error"> ]
}
@@ -210,7 +210,7 @@ action for TOP.
method TOP($/, $key) {
our @?BLOCK;
my $past := @?BLOCK.shift();
- $past.push($<statementlist>.ast);
+ $past.push($<statement_list>.ast);
make $past;
}
View
2  examples/languages/squaak/doc/tutorial_episode_6.pod
@@ -89,7 +89,7 @@ And we need to add it to rule stat_or_def:
| <sub_definition>
}
-Appropriately modifying the action method is simple. It's analogous to the action method for
+Update the stat_or_def action method yourself now. It's analogous to the action method for
expression.
"**" is the repetition specifier; "<identifier> ** ','" matches <identifier> separated by commas.
View
4 examples/pir/befunge/setup.pir
@@ -32,8 +32,8 @@ See F<runtime/library/distutils.pir>.
$P0['license_uri'] = 'http://www.perlfoundation.org/artistic_license_2_0'
$P0['copyright_holder'] = 'Parrot Foundation'
$P0['checkout_uri'] = 'https://github.com/parrot/parrot/tree/master/examples/pir/befunge'
- $P0['browser_uri'] = 'http://trac.parrot.org/parrot/browser/trunk/examples/pir/befunge'
- $P0['project_uri'] = 'http://trac.parrot.org/parrot/browser/trunk/examples/pir/befunge'
+ $P0['browser_uri'] = 'https://github.com/parrot/parrot/tree/master/examples/pir/befunge'
+ $P0['project_uri'] = 'https://github.com/parrot/parrot/tree/master/examples/pir/befunge'
# build
$P1 = new 'Hash'
View
27 frontend/parrot_debugger/main.c
@@ -169,7 +169,7 @@ main(int argc, const char *argv[])
PDB_t *pdb;
const char *scriptname = NULL;
- interp = Parrot_new(NULL);
+ interp = Parrot_interp_new(NULL);
Parrot_debugger_init(interp);
pdb = interp->pdb;
@@ -203,9 +203,12 @@ main(int argc, const char *argv[])
else {
STRING *str = Parrot_str_new(interp, filename, 0);
Parrot_PackFile pf = Parrot_pf_get_packfile_pmc(interp, PackFile_new(interp, 0), str);
+ STRING * const compiler_s = Parrot_str_new(interp, "PIR", 0);
+ PMC * const compiler = Parrot_interp_get_compiler(interp, compiler_s);
Parrot_pf_set_current_packfile(interp, pf);
- Parrot_compile_file(interp, str, 0);
+
+ Parrot_interp_compile_file(interp, compiler, str);
/*if (errmsg)
Parrot_ex_throw_from_c_args(interp, NULL, 1, "Could not compile file");*/
@@ -217,18 +220,14 @@ main(int argc, const char *argv[])
}
else {
/* Generate some code to be able to enter into runloop */
-
- STRING *compiler = Parrot_str_new_constant(interp, "PIR");
- STRING *errstr = NULL;
- const char source []= ".sub aux :main\nexit 0\n.end\n";
- PMC *code = Parrot_compile_string(interp, compiler, source, &errstr);
-
- if (!STRING_IS_NULL(errstr))
- Parrot_io_eprintf(interp, "%Ss\n", errstr);
- else
- if (PMC_IS_NULL(code))
- Parrot_warn(interp, PARROT_WARNINGS_NONE_FLAG,
- "Unexpected compiler problem at debugger start");
+ STRING * const compiler_s = Parrot_str_new_constant(interp, "PIR");
+ PMC * const compiler = Parrot_interp_get_compiler(interp, compiler_s);
+ STRING * const source = Parrot_str_new_constant(interp, ".sub aux :main\nexit 0\n.end\n");
+ PMC * const code = Parrot_interp_compile_string(interp, compiler, source);
+
+ if (PMC_IS_NULL(code))
+ Parrot_warn(interp, PARROT_WARNINGS_NONE_FLAG,
+ "Unexpected compiler problem at debugger start");
}
Parrot_unblock_GC_mark(interp);
View
4 frontend/pbc_dump/main.c
@@ -328,10 +328,10 @@ main(int argc, const char **argv)
if (argc < 2)
help();
- interp = Parrot_new(NULL);
+ interp = Parrot_interp_new(NULL);
/* init and set top of stack */
- Parrot_init_stacktop(interp, &status);
+ Parrot_interp_init_stacktop(interp, &status);
while ((status = longopt_get(argc, argv, opt_options, &opt)) > 0) {
switch (opt.opt_id) {
View
2  frontend/pbc_merge/main.c
@@ -803,7 +803,7 @@ main(int argc, const char **argv)
int i;
const char *output_file = NULL;
struct longopt_opt_info opt = LONGOPT_OPT_INFO_INIT;
- Interp * const interp = Parrot_new(NULL);
+ Interp * const interp = Parrot_interp_new(NULL);
STRING * pbcname = NULL;
PMC * pbcpmc = NULL;
View
389 include/parrot/interpreter.h
@@ -314,196 +314,137 @@ typedef PMC *(*Parrot_compiler_func_t)(PARROT_INTERP,
const char * program);
void
-Parrot_clear_emergency_interp(void);
+Parrot_interp_clear_emergency_interpreter(void);
-/* HEADERIZER BEGIN: src/interp/inter_create.c */
+/* HEADERIZER BEGIN: src/interp/api.c */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
PARROT_MALLOC
-Parrot_Interp allocate_interpreter(
+Parrot_Interp Parrot_interp_allocate_interpreter(
ARGIN_NULLOK(Interp *parent),
INTVAL flags);
PARROT_EXPORT
-PARROT_CANNOT_RETURN_NULL
-Parrot_Interp initialize_interpreter(PARROT_INTERP,
- ARGIN(Parrot_GC_Init_Args *args))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_EXPORT
-PARROT_CANNOT_RETURN_NULL
-PARROT_MALLOC
-Parrot_Interp make_interpreter(ARGIN_NULLOK(Interp *parent), INTVAL flags);
-
-PARROT_EXPORT
-void Parrot_destroy(PARROT_INTERP)
+void Parrot_interp_clear_debug(PARROT_INTERP, UINTVAL flag)
__attribute__nonnull__(1);
PARROT_EXPORT
-void Parrot_init_stacktop(PARROT_INTERP, ARGIN(void *stack_top))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_EXPORT
-PARROT_CANNOT_RETURN_NULL
-PARROT_MALLOC
-Parrot_Interp Parrot_new(ARGIN_NULLOK(Parrot_Interp parent));
-
-PARROT_CAN_RETURN_NULL
-Interp* Parrot_get_emergency_interp(void);
-
-void Parrot_really_destroy(PARROT_INTERP, int exit_code, void *arg)
+void Parrot_interp_clear_flag(PARROT_INTERP, INTVAL flag)
__attribute__nonnull__(1);
-#define ASSERT_ARGS_allocate_interpreter __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
-#define ASSERT_ARGS_initialize_interpreter __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(args))
-#define ASSERT_ARGS_make_interpreter __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
-#define ASSERT_ARGS_Parrot_destroy __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_init_stacktop __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(stack_top))
-#define ASSERT_ARGS_Parrot_new __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
-#define ASSERT_ARGS_Parrot_get_emergency_interp __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
-#define ASSERT_ARGS_Parrot_really_destroy __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-/* HEADERIZER END: src/interp/inter_create.c */
-
-/* HEADERIZER BEGIN: src/interp/inter_cb.c */
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-
PARROT_EXPORT
-void Parrot_callback_C(
- ARGIN(char *external_data),
- ARGMOD_NULLOK(PMC *user_data))
- __attribute__nonnull__(1)
- FUNC_MODIFIES(*user_data);
-
-PARROT_EXPORT
-void Parrot_callback_D(
- ARGMOD(PMC *user_data),
- ARGMOD_NULLOK(char *external_data))
- __attribute__nonnull__(1)
- FUNC_MODIFIES(*user_data)
- FUNC_MODIFIES(*external_data);
+void Parrot_interp_clear_trace(PARROT_INTERP, UINTVAL flag)
+ __attribute__nonnull__(1);
PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
-PARROT_WARN_UNUSED_RESULT
-PMC* Parrot_make_cb(PARROT_INTERP,
- ARGMOD(PMC* sub),
- ARGIN(PMC* user_data),
- ARGIN(STRING *cb_signature))
+PMC * Parrot_interp_compile_file(PARROT_INTERP,
+ ARGIN(PMC *compiler),
+ ARGIN(STRING *fullname))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
- __attribute__nonnull__(3)
- __attribute__nonnull__(4)
- FUNC_MODIFIES(* sub);
+ __attribute__nonnull__(3);
PARROT_EXPORT
-void Parrot_run_callback(PARROT_INTERP,
- ARGMOD(PMC* user_data),
- ARGIN(void* external_data))
+PARROT_CAN_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+Parrot_PMC Parrot_interp_compile_string(PARROT_INTERP,
+ ARGIN(PMC * compiler),
+ ARGIN(STRING *code))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
- __attribute__nonnull__(3)
- FUNC_MODIFIES(* user_data);
-
-#define ASSERT_ARGS_Parrot_callback_C __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(external_data))
-#define ASSERT_ARGS_Parrot_callback_D __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(user_data))
-#define ASSERT_ARGS_Parrot_make_cb __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(sub) \
- , PARROT_ASSERT_ARG(user_data) \
- , PARROT_ASSERT_ARG(cb_signature))
-#define ASSERT_ARGS_Parrot_run_callback __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(user_data) \
- , PARROT_ASSERT_ARG(external_data))
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-/* HEADERIZER END: src/interp/inter_cb.c */
-
-/* HEADERIZER BEGIN: src/interp/inter_misc.c */
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+ __attribute__nonnull__(3);
PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-INTVAL interpinfo(PARROT_INTERP, INTVAL what)
+void Parrot_interp_destroy(PARROT_INTERP)
__attribute__nonnull__(1);
PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
-PMC* interpinfo_p(PARROT_INTERP, INTVAL what)
- __attribute__nonnull__(1);
+PMC * Parrot_interp_get_compiler(PARROT_INTERP, ARGIN(STRING *type))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
-STRING* interpinfo_s(PARROT_INTERP, INTVAL what)
+Interp * Parrot_interp_get_from_pmc(ARGIN(PMC * interp_pmc))
__attribute__nonnull__(1);
PARROT_EXPORT
-void Parrot_clear_debug(PARROT_INTERP, UINTVAL flag)
+PARROT_WARN_UNUSED_RESULT
+INTVAL Parrot_interp_info(PARROT_INTERP, INTVAL what)
__attribute__nonnull__(1);
PARROT_EXPORT
-void Parrot_clear_flag(PARROT_INTERP, INTVAL flag)
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+PMC* Parrot_interp_info_p(PARROT_INTERP, INTVAL what)
__attribute__nonnull__(1);
PARROT_EXPORT
-void Parrot_clear_trace(PARROT_INTERP, UINTVAL flag)
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+STRING* Parrot_interp_info_s(PARROT_INTERP, INTVAL what)
__attribute__nonnull__(1);
PARROT_EXPORT
-PARROT_CANNOT_RETURN_NULL
-PMC * Parrot_compile_file(PARROT_INTERP,
- ARGIN(STRING *fullname),
- INTVAL is_pasm)
+void Parrot_interp_init_stacktop(PARROT_INTERP, ARGIN(void *stack_top))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_EXPORT
-PARROT_CAN_RETURN_NULL
-PARROT_WARN_UNUSED_RESULT
-Parrot_PMC Parrot_compile_string(PARROT_INTERP,
- Parrot_String type,
- ARGIN(const char *code),
- ARGOUT(Parrot_String *error))
- __attribute__nonnull__(1)
- __attribute__nonnull__(3)
- __attribute__nonnull__(4)
- FUNC_MODIFIES(*error);
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
-PMC * Parrot_get_compiler(PARROT_INTERP, ARGIN(STRING *type))
+Parrot_Interp Parrot_interp_initialize_interpreter(PARROT_INTERP,
+ ARGIN(Parrot_GC_Init_Args *args))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
-Interp * Parrot_int_get_interp_from_pmc(ARGIN(PMC * interp_pmc))
- __attribute__nonnull__(1);
+PARROT_MALLOC
+Parrot_Interp Parrot_interp_make_interpreter(
+ ARGIN_NULLOK(Interp *parent),
+ INTVAL flags);
PARROT_EXPORT
-void Parrot_mark_method_writes(PARROT_INTERP,
+void Parrot_interp_mark_method_writes(PARROT_INTERP,
int type,
ARGIN(const char *name))
__attribute__nonnull__(1)
__attribute__nonnull__(3);
PARROT_EXPORT
-void Parrot_set_compiler(PARROT_INTERP,
+PARROT_CANNOT_RETURN_NULL
+PARROT_MALLOC
+Parrot_Interp Parrot_interp_new(ARGIN_NULLOK(Parrot_Interp parent));
+
+PARROT_EXPORT
+void Parrot_interp_register_native_pcc_method_in_ns(PARROT_INTERP,
+ const int type,
+ ARGIN(void *func),
+ ARGIN(STRING *name),
+ ARGIN(STRING *signature))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(3)
+ __attribute__nonnull__(4)
+ __attribute__nonnull__(5);
+
+PARROT_EXPORT
+void Parrot_interp_register_nci_method(PARROT_INTERP,
+ const int type,
+ ARGIN(void *func),
+ ARGIN(const char *name),
+ ARGIN(const char *proto))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(3)
+ __attribute__nonnull__(4)
+ __attribute__nonnull__(5);
+
+PARROT_EXPORT
+void Parrot_interp_set_compiler(PARROT_INTERP,
ARGIN(STRING *type),
ARGIN(PMC *compiler))
__attribute__nonnull__(1)
@@ -511,132 +452,196 @@ void Parrot_set_compiler(PARROT_INTERP,
__attribute__nonnull__(3);
PARROT_EXPORT
-void Parrot_set_debug(PARROT_INTERP, UINTVAL flag)
+void Parrot_interp_set_debug(PARROT_INTERP, UINTVAL flag)
__attribute__nonnull__(1);
PARROT_EXPORT
-void Parrot_set_executable_name(PARROT_INTERP, ARGIN(STRING * const name))
+void Parrot_interp_set_executable_name(PARROT_INTERP,
+ ARGIN(STRING * const name))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_EXPORT
-void Parrot_set_flag(PARROT_INTERP, INTVAL flag)
+void Parrot_interp_set_flag(PARROT_INTERP, INTVAL flag)
__attribute__nonnull__(1);
PARROT_EXPORT
-void Parrot_set_run_core(PARROT_INTERP, Parrot_Run_core_t core)
+void Parrot_interp_set_run_core(PARROT_INTERP, Parrot_Run_core_t core)
__attribute__nonnull__(1);
PARROT_EXPORT
-void Parrot_set_trace(PARROT_INTERP, UINTVAL flag)
+void Parrot_interp_set_trace(PARROT_INTERP, UINTVAL flag)
__attribute__nonnull__(1);
PARROT_EXPORT
-void Parrot_setwarnings(PARROT_INTERP, Parrot_warnclass wc)
+void Parrot_interp_set_warnings(PARROT_INTERP, Parrot_warnclass wc)
__attribute__nonnull__(1);
PARROT_EXPORT
PARROT_PURE_FUNCTION
-Parrot_UInt Parrot_test_debug(PARROT_INTERP, UINTVAL flag)
+Parrot_UInt Parrot_interp_test_debug(PARROT_INTERP, UINTVAL flag)
__attribute__nonnull__(1);
PARROT_EXPORT
PARROT_PURE_FUNCTION
-Parrot_Int Parrot_test_flag(PARROT_INTERP, INTVAL flag)
+Parrot_Int Parrot_interp_test_flag(PARROT_INTERP, INTVAL flag)
__attribute__nonnull__(1);
PARROT_EXPORT
PARROT_PURE_FUNCTION
-Parrot_UInt Parrot_test_trace(PARROT_INTERP, UINTVAL flag)
+Parrot_UInt Parrot_interp_test_trace(PARROT_INTERP, UINTVAL flag)
__attribute__nonnull__(1);
-PARROT_EXPORT
-void register_native_pcc_method_in_ns(PARROT_INTERP,
- const int type,
- ARGIN(void *func),
- ARGIN(STRING *name),
- ARGIN(STRING *signature))
- __attribute__nonnull__(1)
- __attribute__nonnull__(3)
- __attribute__nonnull__(4)
- __attribute__nonnull__(5);
+void Parrot_interp_clear_emergency_interpreter(void);
+PARROT_CAN_RETURN_NULL
+Interp* Parrot_interp_get_emergency_interpreter(void);
-PARROT_EXPORT
-void register_nci_method(PARROT_INTERP,
- const int type,
- ARGIN(void *func),
- ARGIN(const char *name),
- ARGIN(const char *proto))
- __attribute__nonnull__(1)
- __attribute__nonnull__(3)
- __attribute__nonnull__(4)
- __attribute__nonnull__(5);
+void Parrot_interp_really_destroy(PARROT_INTERP, int exit_code, void *arg)
+ __attribute__nonnull__(1);
-#define ASSERT_ARGS_interpinfo __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_interpinfo_p __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_Parrot_interp_allocate_interpreter \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_Parrot_interp_clear_debug __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_interpinfo_s __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_Parrot_interp_clear_flag __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_clear_debug __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_Parrot_interp_clear_trace __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_clear_flag __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_clear_trace __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_Parrot_compile_file __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_Parrot_interp_compile_file __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(compiler) \
, PARROT_ASSERT_ARG(fullname))
-#define ASSERT_ARGS_Parrot_compile_string __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_Parrot_interp_compile_string __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(code) \
- , PARROT_ASSERT_ARG(error))
-#define ASSERT_ARGS_Parrot_get_compiler __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ , PARROT_ASSERT_ARG(compiler) \
+ , PARROT_ASSERT_ARG(code))
+#define ASSERT_ARGS_Parrot_interp_destroy __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_Parrot_interp_get_compiler __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(type))
-#define ASSERT_ARGS_Parrot_int_get_interp_from_pmc \
- __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_Parrot_interp_get_from_pmc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp_pmc))
-#define ASSERT_ARGS_Parrot_mark_method_writes __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_Parrot_interp_info __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_Parrot_interp_info_p __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_Parrot_interp_info_s __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_Parrot_interp_init_stacktop __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(stack_top))
+#define ASSERT_ARGS_Parrot_interp_initialize_interpreter \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(args))
+#define ASSERT_ARGS_Parrot_interp_make_interpreter \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_Parrot_interp_mark_method_writes \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(name))
-#define ASSERT_ARGS_Parrot_set_compiler __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_Parrot_interp_new __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_Parrot_interp_register_native_pcc_method_in_ns \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(func) \
+ , PARROT_ASSERT_ARG(name) \
+ , PARROT_ASSERT_ARG(signature))
+#define ASSERT_ARGS_Parrot_interp_register_nci_method \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \