Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

merge master into branch. Fix a few conflicts

  • Loading branch information...
commit 7cf75f064e33f6e047f9137b9192974e7b1f51bd 2 parents 01d3186 + 82ae832
@Whiteknight Whiteknight authored
Showing with 18,226 additions and 12,078 deletions.
  1. +2 −0  .gitignore
  2. +9 −0 CREDITS
  3. +5 −1 ChangeLog
  4. +0 −7 Configure.pl
  5. +12 −5 MANIFEST
  6. +8 −6 MANIFEST.SKIP
  7. +3 −2 MANIFEST.generated
  8. +36 −3 NEWS
  9. +2 −2 README
  10. +4 −4 README_cygwin.pod
  11. +1 −1  VERSION
  12. +16 −5 api.yaml
  13. +2 −0  compilers/data_json/Defines.mak
  14. +130 −0 compilers/data_json/JSON.nqp
  15. +33 −0 compilers/data_json/JSON_README.pod
  16. +4 −0 compilers/data_json/Rules.mak
  17. +4 −3 compilers/imcc/imcc.l
  18. +4 −3 compilers/imcc/imclexer.c
  19. +8 −1 compilers/opsc/src/Ops/Compiler/Actions.pm
  20. +11 −0 compilers/opsc/src/Ops/Op.pm
  21. +41 −16 config/auto/gc.pm
  22. +0 −43 config/auto/perldoc.pm
  23. +1 −1  config/auto/platform.pm
  24. +0 −1  config/auto/pmc.pm
  25. +28 −0 config/auto/stat.pm
  26. +31 −0 config/auto/stat/test_atim_c.in
  27. +31 −0 config/auto/stat/test_atimespec_c.in
  28. +11 −0 config/gen/config_h/config_h.in
  29. +7 −24 config/gen/makefiles/docs.in
  30. +20 −22 config/gen/makefiles/root.in
  31. +1 −1  docs/embed.pod
  32. +3 −1 docs/embed_new.pod
  33. +1 −1  docs/gettingstarted.pod
  34. +40 −8 docs/glossary.pod
  35. +1 −1  docs/imcc/imcfaq.pod
  36. +16 −0 docs/index/developer.json
  37. +1 −1  docs/intro.pod
  38. +3 −3 docs/parrotbyte.pod
  39. +2 −1  docs/parrothist.pod
  40. +13 −125 docs/project/committer_guide.pod
  41. +4 −2 docs/project/core_inclusion.pod
  42. +25 −0 docs/project/git_workflow.pod
  43. +6 −33 docs/project/metacommitter_guide.pod
  44. +1 −2  docs/project/release_manager_guide.pod
  45. +11 −10 docs/project/support_policy.pod
  46. +2 −2 docs/submissions.pod
  47. +1 −1  docs/tests.pod
  48. +1 −1  docs/translations/README.BGR
  49. +1 −1  docs/translations/README.deutsch
  50. +1 −1  docs/translations/README.espanol
  51. +1 −1  docs/translations/README.francais
  52. +1 −1  docs/translations/README.polski
  53. +1 −1  docs/translations/README.pt-BR
  54. +1 −1  docs/user/pir/intro.pod
  55. +1 −1  editor/mk_skeleton.pir
  56. +0 −1  examples/config/file/configcompiler
  57. +2 −2 examples/languages/abc/setup.pir
  58. +21 −24 examples/languages/squaak/doc/tutorial_episode_3.pod
  59. +2 −2 examples/pir/befunge/setup.pir
  60. +1 −1  ext/nqp-rx/CREDITS
  61. +1 −1  ext/nqp-rx/README
  62. +728 −715 ext/nqp-rx/src/stage0/HLL-s0.pir
  63. +8,056 −8,006 ext/nqp-rx/src/stage0/NQP-s0.pir
  64. +477 −477 ext/nqp-rx/src/stage0/P6Regex-s0.pir
  65. +2 −2 frontend/pbc_merge/main.c
  66. +8 −0 include/parrot/call.h
  67. +69 −66 include/parrot/context.h
  68. +12 −9 include/parrot/gc_api.h
  69. +1 −1  include/parrot/oplib/core_ops.h
  70. +0 −1  include/parrot/parrot.h
  71. +124 −0 include/parrot/platform_interface.h
  72. +31 −25 include/parrot/pobj.h
  73. +3 −0  include/parrot/pointer_array.h
  74. +0 −9 include/parrot/settings.h
  75. +0 −56 include/parrot/stat.h
  76. +0 −2  include/parrot/string_funcs.h
  77. +0 −7 include/parrot/thr_windows.h
  78. +1 −11 lib/Parrot/Configure/Options/Conf.pm
  79. +1 −5 lib/Parrot/Configure/Options/Conf/CLI.pm
  80. +1 −5 lib/Parrot/Configure/Options/Conf/File.pm
  81. +1 −1  lib/Parrot/Configure/Options/Conf/Shared.pm
  82. +3 −4 lib/Parrot/Configure/Test.pm
  83. +0 −26 lib/Parrot/Distribution.pm
  84. +0 −1  lib/Parrot/Docs/File.pm
  85. +1 −1  lib/Parrot/Docs/Section/Info.pm
  86. +3 −3 lib/Parrot/Harness/Smoke.pm
  87. +2 −3 lib/Parrot/IO/Directory.pm
  88. +1 −47 lib/Parrot/IO/File.pm
  89. +6 −11 lib/Parrot/Manifest.pm
  90. +7 −1 lib/Parrot/Pmc2c/Method.pm
  91. +10 −0 lib/Parrot/Pmc2c/PCCMETHOD.pm
  92. +58 −0 lib/Parrot/Pmc2c/PMC.pm
  93. +1 −0  lib/Parrot/Pmc2c/Parser.pm
  94. +8 −2 lib/Parrot/Revision.pm
  95. +1 −1  ports/debian/rules
  96. +1 −1  runtime/parrot/library/YAML/Tiny.pm
  97. +9 −1 runtime/parrot/library/distutils.pir
  98. +10 −8 src/call/args.c
  99. +52 −4 src/call/context.c
  100. +19 −10 src/call/context_accessors.c
  101. +4 −4 src/debug.c
  102. +1 −5 src/dynoplibs/io.ops
  103. +0 −1  src/dynpmc/Defines.in
  104. +7 −30 src/dynpmc/file.pmc
  105. +83 −391 src/dynpmc/os.pmc
  106. +16 −0 src/embed/api.c
  107. +24 −3 src/extend.c
  108. +74 −53 src/gc/api.c
  109. +104 −2 src/gc/fixed_allocator.c
  110. +41 −0 src/gc/fixed_allocator.h
  111. +2,463 −0 src/gc/gc_gms.c
  112. +10 −8 src/gc/gc_ms.c
  113. +9 −13 src/gc/gc_ms2.c
  114. +35 −5 src/gc/gc_private.h
  115. +1 −4 src/gc/mark_sweep.c
  116. +51 −24 src/gc/system.c
  117. +16 −22 src/hash.c
  118. +0 −1  src/key.c
  119. +1 −1  src/library.c
  120. +9 −0 src/multidispatch.c
  121. +0 −1  src/ops/core.ops
  122. +2,319 −1,000 src/ops/core_ops.c
  123. +6 −0 src/ops/set.ops
  124. +3 −3 src/packfile/api.c
  125. +801 −0 src/platform/generic/file.c
  126. +0 −383 src/platform/generic/stat.c
  127. +3 −0  src/platform/generic/sysmem.c
  128. +1,028 −0 src/platform/win32/file.c
  129. +10 −1 src/pmc.c
  130. +3 −1 src/pmc/callcontext.pmc
  131. +7 −7 src/pmc/capture.pmc
  132. +11 −2 src/pmc/class.pmc
  133. +3 −3 src/pmc/coroutine.pmc
  134. +1 −0  src/pmc/default.pmc
  135. +1 −1  src/pmc/env.pmc
  136. +1 −1  src/pmc/filehandle.pmc
  137. +8 −8 src/pmc/fixedintegerarray.pmc
  138. +5 −7 src/pmc/fixedpmcarray.pmc
  139. +8 −0 src/pmc/hash.pmc
  140. +3 −2 src/pmc/lexpad.pmc
  141. +1 −0  src/pmc/namespace.pmc
  142. +10 −6 src/pmc/nci.pmc
  143. +1 −0  src/pmc/object.pmc
  144. +3 −2 src/pmc/packfile.pmc
  145. +0 −4 src/pmc/packfileannotations.pmc
  146. +4 −1 src/pmc/sub.pmc
  147. +3 −0  src/pointer_array.c
  148. +8 −2 src/string/api.c
  149. +14 −3 src/string/encoding.c
  150. +5 −1 src/sub.c
  151. +7 −5 src/vtable.tbl
  152. +2 −2 t/compilers/imcc/syn/errors.t
  153. +3 −0  t/compilers/opsc/02-parse-all-ops.t
  154. +24 −2 t/compilers/opsc/03-past.t
  155. +1 −1  t/configure/001-options.t
  156. +1 −3 t/configure/008-file_based_configuration.t
  157. +0 −1  t/configure/testlib/bdefectivefoobar
  158. +0 −1  t/configure/testlib/cdefectivefoobar
  159. +2 −2 t/dynoplibs/io-old.t
  160. +1 −39 t/dynoplibs/io.t
  161. +52 −39 t/dynpmc/os.t
  162. +162 −0 t/dynpmc/os_unicode.t
  163. +20 −1 t/op/gc-leaky-box.t
  164. +23 −1 t/op/gc-leaky-call.t
  165. +44 −37 t/op/spawnw.t
  166. +38 −0 t/pir/pbc_fallback.t
  167. +12 −0 t/pir/testlib/loadtest.pir
  168. +16 −1 t/pmc/fixedpmcarray.t
  169. +1 −2  t/src/embed/api.t
  170. +156 −14 t/src/extend_vtable.t
  171. +21 −1 t/src/misc.t
  172. +5 −5 t/steps/auto/gc-01.t
  173. +0 −1  t/steps/inter/progs-01.t
  174. +0 −1  t/steps/inter/progs-02.t
  175. +0 −1  t/steps/inter/progs-03.t
  176. +1 −1  t/tools/install/testlib/README
  177. +2 −2 t/tools/pmc2cutils/04-dump_pmc.t
  178. +1 −1  tools/dev/create_language.pl
  179. +1 −1  tools/dev/headerizer.pl
  180. +69 −0 tools/dev/merge_pull_request.pl
  181. +4 −4 tools/dev/mk_language_shell.in
  182. +1 −0  tools/dev/mk_manifest_and_skip.pl
View
2  .gitignore
@@ -252,6 +252,7 @@
/runtime/parrot/include/*.fpmc
/runtime/parrot/include/*.pasm
/runtime/parrot/include/*.pbc
+/runtime/parrot/languages/JSON/JSON.pir
/runtime/parrot/languages/data_json
/runtime/parrot/library/*.pbc
/runtime/parrot/library/OpenGL_funcs.pir
@@ -435,6 +436,7 @@
/t/perl/Parrot_Test_1.pir
/t/perl/*.gcda
/t/perl/*.gcno
+/t/pir/pbc_fallback_1.pir
/t/pmc/*.out
/t/pmc/*.pasm
/t/pmc/*.pbc
View
9 CREDITS
@@ -32,6 +32,14 @@ D: Building on various platforms.
N: Ahmed Zawawi
D: Rakudo builtins
+N: Akash Manohar
+U: akashmanohar
+A: SingAlong
+E: akash@akash.im
+D: Fixed PCT tutorial Episode-3
+S: Bangalore, India
+W: http://akash.im
+
N: Alberto Manuel Brandao Simoes
U: ambs
E: ambs@cpan.org
@@ -749,6 +757,7 @@ D: testing parrot and some HLL's
D: fixing codetest failures
D: adding function documentation
D: tracwiki additions
+D: Release manager for 2.7.0, 3.1.0
E: mike.hind@gmail.com
N: Michael G. Schwern
View
6 ChangeLog
@@ -1,4 +1,8 @@
-#1 $Id$
+#1
+
+2011.02.15 mikehh
+ * Released 3.1.0
+ See NEWS for more.
2011.01.18 cotto
* Released 3.0.0
View
7 Configure.pl
@@ -276,10 +276,6 @@ =head2 Compile Options
Use the given compiler warning flags.
-=item C<--cxx=(compiler)>
-
-Specify which C++ compiler to use (for ICU).
-
=item C<--libs=(libs)>
Use the given libraries.
@@ -452,7 +448,6 @@ =head1 CONFIGURATION-FILE INTERFACE
CX="/usr/bin/g++"
/usr/local/bin/perl Configure.pl \
--cc="$CC" \
- --cxx="$CX" \
--link="$CX" \
--ld="$CX"
@@ -479,7 +474,6 @@ =head1 CONFIGURATION-FILE INTERFACE
I<option=value> pairs or be options which will be assigned a true value.
cc=$CC
- cxx=$CX
link=$CX
ld=/usr/bin/g++
verbose
@@ -585,7 +579,6 @@ =head2 Example
=general
cc=$CC
- cxx=$CX
link=$CX
ld=/usr/bin/g++
View
17 MANIFEST
@@ -1,13 +1,11 @@
# ex: set ro:
-# $Id$
#
# generated by tools/dev/mk_manifest_and_skip.pl
#
# See below for documentation on the format of this file.
#
# See docs/submissions.pod and the documentation in
-# tools/dev/mk_manifest_and_skip.pl on how to recreate this file after SVN
-# has been told about new or deleted files.
+# tools/dev/mk_manifest_and_skip.pl.
.gitignore []
CREDITS [main]doc
ChangeLog []
@@ -29,6 +27,8 @@ TODO [devel]doc
VERSION [devel]
api.yaml []
compilers/data_json/Defines.mak [data_json]
+compilers/data_json/JSON.nqp [data_json]
+compilers/data_json/JSON_README.pod []doc
compilers/data_json/Rules.mak [data_json]
compilers/data_json/data_json.pir [data_json]
compilers/data_json/data_json/grammar.pg [data_json]
@@ -203,6 +203,8 @@ config/auto/snprintf.pm []
config/auto/snprintf/test_c.in []
config/auto/socklen_t.pm []
config/auto/stat.pm []
+config/auto/stat/test_atim_c.in []
+config/auto/stat/test_atimespec_c.in []
config/auto/stat/test_c.in []
config/auto/thread.pm []
config/auto/timespec.pm []
@@ -924,7 +926,6 @@ include/parrot/runcore_trace.h [main]include
include/parrot/scheduler.h [main]include
include/parrot/scheduler_private.h [main]include
include/parrot/settings.h [main]include
-include/parrot/stat.h [main]include
include/parrot/string.h [main]include
include/parrot/string_funcs.h [main]include
include/parrot/sub.h [main]include
@@ -1216,6 +1217,7 @@ src/gc/alloc_resources.c []
src/gc/api.c []
src/gc/fixed_allocator.c []
src/gc/fixed_allocator.h []
+src/gc/gc_gms.c []
src/gc/gc_inf.c []
src/gc/gc_ms.c []
src/gc/gc_ms2.c []
@@ -1289,13 +1291,13 @@ src/platform/generic/encoding.c []
src/platform/generic/env.c []
src/platform/generic/error.c []
src/platform/generic/exec.c []
+src/platform/generic/file.c []
src/platform/generic/hires_timer.c []
src/platform/generic/io.c []
src/platform/generic/itimer.c []
src/platform/generic/math.c []
src/platform/generic/misc.c []
src/platform/generic/socket.c []
-src/platform/generic/stat.c []
src/platform/generic/sysmem.c []
src/platform/generic/time.c []
src/platform/generic/uid.c []
@@ -1309,6 +1311,7 @@ src/platform/win32/dl.c []
src/platform/win32/env.c []
src/platform/win32/error.c []
src/platform/win32/exec.c []
+src/platform/win32/file.c []
src/platform/win32/hires_timer.c []
src/platform/win32/io.c []
src/platform/win32/misc.c []
@@ -1631,6 +1634,7 @@ t/dynpmc/foo.t [test]
t/dynpmc/foo2.t [test]
t/dynpmc/gziphandle.t [test]
t/dynpmc/os.t [test]
+t/dynpmc/os_unicode.t [test]
t/dynpmc/pccmethod_test.t [test]
t/dynpmc/rational.t [test]
t/dynpmc/rotest.t [test]
@@ -1802,7 +1806,9 @@ t/pharness/02-get_test_prog_args.t [test]
t/pharness/03-handle_long_options.t [test]
t/pharness/04-Usage.t [test]
t/pir/macro.t [test]
+t/pir/pbc_fallback.t [test]
t/pir/registernames.t [test]
+t/pir/testlib/loadtest.pir [test]
t/pir/timer_exit.t [test]
t/pmc/addrregistry.t [test]
t/pmc/arrayiterator.t [test]
@@ -2108,6 +2114,7 @@ tools/dev/install_files.pl []
tools/dev/lib_deps.pl []
tools/dev/make_cover.pl []
tools/dev/manicheck.pl []
+tools/dev/merge_pull_request.pl []
tools/dev/mk_author_map.pl []
tools/dev/mk_inno.pl []
tools/dev/mk_inno_language.pl []
View
14 MANIFEST.SKIP
@@ -1,12 +1,10 @@
# ex: set ro:
-# $Id$
+#
# generated by tools/dev/mk_manifest_and_skip.pl
#
-# This file should contain a transcript of the svn:ignore properties
-# of the directories in the Parrot subversion repository. (Needed for
-# distributions or in general when svn is not available).
-# See docs/submissions.pod on how to recreate this file after SVN
-# has been told about new generated files.
+# This file should contain a list of directories and files created in Parrot's
+# configuration and build processes which are not meant for inclusion in
+# distributions.
#
# Ignore the .git directory
\B\.git\b
@@ -516,6 +514,8 @@
^/runtime/parrot/include/.*\.pasm/
^/runtime/parrot/include/.*\.pbc$
^/runtime/parrot/include/.*\.pbc/
+^/runtime/parrot/languages/JSON/JSON\.pir$
+^/runtime/parrot/languages/JSON/JSON\.pir/
^/runtime/parrot/languages/data_json$
^/runtime/parrot/languages/data_json/
^/runtime/parrot/library/.*\.pbc$
@@ -966,6 +966,8 @@
^/t/perl/Parrot_Test_1\.pasm/
^/t/perl/Parrot_Test_1\.pir$
^/t/perl/Parrot_Test_1\.pir/
+^/t/pir/pbc_fallback_1\.pir$
+^/t/pir/pbc_fallback_1\.pir/
^/t/pmc/.*\.out$
^/t/pmc/.*\.out/
^/t/pmc/.*\.pasm$
View
5 MANIFEST.generated
@@ -1,11 +1,11 @@
# 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.0.0.dylib [main]lib
+blib/lib/libparrot.3.1.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.0.0 [main]lib
+blib/lib/libparrot.so.3.1.0 [main]lib
compilers/data_json/data_json.pbc [data_json]
config/gen/call_list/opengl.in []
docs/ops/bit.pod [doc]
@@ -241,6 +241,7 @@ runtime/parrot/include/timer.pasm [main]
runtime/parrot/include/tm.pasm [main]
runtime/parrot/include/vtable_methods.pasm [main]
runtime/parrot/include/warnings.pasm [main]
+runtime/parrot/languages/JSON/JSON.pir [data_json]
runtime/parrot/library/Archive/Tar.pbc [main]
runtime/parrot/library/Archive/Zip.pbc [main]
runtime/parrot/library/CGI/QueryHash.pbc [main]
View
39 NEWS
@@ -1,20 +1,53 @@
+New in 3.2.0
+- Core
+ + Full support for Unicode filenames on Linux and Win32
+- Languages
+- Community
+- Documentation
+ + 'make docs' target, which was serving only to generate superfluous POD
+ files, has been removed.
+- Tests
+
New in 3.1.0
- Core
+ Exception PMCs are now subclassable from PIR
- + IPv6 is now supported
+ + IPv6 is now supported and tested
+ Added Parrot_ext_try function to extend API (experimental), to allow
- implementation of try .. catch construcs in C extensions.
+ implementation of try .. catch construct in C extensions.
+ We now have a YAML library called YAML::Tiny, a port of YAML::Tiny from Perl 5
+ Deprecated/experimental features are now stored in api.yaml in an easy-to-parse
format, which will allow automated tools easy access to this data. This replaces
DEPRECATED.pod, which no longer exists.
+ Improved GC latency
+ Improved GC performance on low-memory systems
+ + Improved packfile annotation lookup complexity
+ + Removal of unused code and SVN based code
+- NQP
+ + A repository for a new NQP version which has a new object model is
+ created at http://github.com/perl6/nqp
- Languages
+ + Cardinal (Ruby on Parrot) now compiles and passes it's test suite on master
+ and is looking for developers : https://github.com/parrot/cardinal
+ + Cardinal can send smoke reports with "rake smoke" or "parrot setup.pir smoke"
+ + Jaspers, an implementation of Javascript on Parrot, now has a Github repo
+ and is looking for developers: https://github.com/leto/jaspers
- Community
+ + The following Parrot Google Code-In students were grand prize winners:
+ Fernando Brito, Brazil David Czech, Canada
+ Nolan Lum, United States Matt Rajca, United States
+ Tony Young, New Zealand Daniel Kang, United States
+ We are very proud of them for their fine work and congratulate
+ them for achieving top finalist status! For more info, see:
+ http://google-opensource.blogspot.com/2011/02/google-code-in-grand-prize-winners.html
- Documentation
+ + Many new Parrot-related terms were added to docs/glossary.pod
+ + Removal of most remaining references to SVN
+ + Internal project documentation is included in html output
- Tests
-
+ + Test suite now passes on NetBSD 5.1
+ + Test coverage increased greatly for the Embed/Extend subsystem,
+ thanks to a TPF grant:
+ http://leto.net/dukeleto.pl/2011/01/parrot-embed-grant-update-2.html
New in 3.0.0
- Core
View
4 README
@@ -1,4 +1,4 @@
-This is Parrot, version 3.0.0
+This is Parrot, version 3.1.0
------------------------------
Parrot is Copyright (C) 2001-2011, Parrot Foundation.
@@ -93,7 +93,7 @@ from the running perl5 program. You may need to explicitly tell Configure.pl
which compiler and linker to use. For example, to compile C files with 'cc',
C++ files with 'CC', and link everything together with 'CC', you would type
- perl Configure.pl --cc=cc --cxx=CC --link=CC --ld=CC
+ perl Configure.pl --cc=cc --link=CC --ld=CC
See "perl Configure.pl --help" for more options and docs/configuration.pod
for more details.
View
8 README_cygwin.pod
@@ -70,12 +70,12 @@ Building is tricky:
If the freeglut package for the X Server is installed, this
is used, otherwise the w32api and opengl packages for native
-Windows opengl support are tried.
+Windows opengl support are tried.
In order to use the w32api native GLUT there must be no
F</usr/include/GL> directory.
-
-The problem is that the L<NCI|pdds/draft/pdd16_native_call.pod>
+
+The problem is that the L<NCI|pdds/draft/pdd16_native_call.pod>
tries the header files to create the imports and not the
libraries, and if the /usr/include/GL headers are found
these are used, despite the w32api GLUT libraries are
@@ -87,7 +87,7 @@ defined.
Required packages:
- libglut-devel libGL-devel libGLU-devel libglut3 ...
+ libglut-devel libGL-devel libGLU-devel libglut3 ...
or if C<libglut-devel> and C<libGL-devel> is not installed:
View
2  VERSION
@@ -1 +1 @@
-3.0.0
+3.1.0
View
21 api.yaml
@@ -1,5 +1,13 @@
---
-
+ name: 'add write barrier to all PMCs that write in unusual VTABLE functions'
+ eligible: '3.4'
+ note: 'VTABLE functions not marked with :write that mutate the PMCs need to use the write barrier. See ticket for more information.'
+ tags:
+ - 'C'
+ - 'deprecated'
+ ticket: 'http://trac.parrot.org/parrot/ticket/2010'
+-
name: '":init" Sub flag'
eligible: '3.4'
note: 'At this point, ":init" is a no-op, and will therefore be removed.'
@@ -57,7 +65,7 @@
-
name: 'C API coding standards cleanup'
eligible: '1.1'
- note: 'All C API functions that aren''t currently named according to the 'Parrot_<system>_*' scheme will be renamed. A list of renamed functions will be kept in the ticket at:'
+ note: 'All C API functions that aren''t currently named according to the ''Parrot_<system>_*'' scheme will be renamed. A list of renamed functions will be kept in the ticket at:'
tags:
- 'deprecated'
- 'functions'
@@ -180,7 +188,7 @@
-
name: 'PCT::HLLCompiler from Perl 5''s Test::Harness'
eligible: '1.1'
- note: 'In order to facilitate using PCT::HLLCompiler with test harnesses, the ''command_line' method of PCT::HLLCompiler object exits silently if it detects that it is being run in a sample run from Perl's Test::Harness. Currently this detection is done by checking the second command line argument for @INC; future releases may use a different detection mechanism or eliminate it altogether.'
+ note: 'In order to facilitate using PCT::HLLCompiler with test harnesses, the ''command_line'' method of PCT::HLLCompiler object exits silently if it detects that it is being run in a sample run from Perl''s Test::Harness. Currently this detection is done by checking the second command line argument for @INC; future releases may use a different detection mechanism or eliminate it altogether.'
tags:
- 'deprecated'
- 'compiler'
@@ -206,6 +214,7 @@
tags:
- 'bytecode'
- 'experimental'
+ - 'completed'
ticket: 'https://trac.parrot.org/parrot/ticket/451'
-
name: 'PackfileDebug'
@@ -320,7 +329,7 @@
-
name: 'fixed_8 encoding'
eligible: '2.10'
- note: 'The ''fixed_8' encoding is going away. Use 'ascii' instead. If you want to test for a fixed_8 encoding, you have to compare the encoding to 'ascii', 'iso-8859-1' and 'binary' separately.'
+ note: 'The ''fixed_8'' encoding is going away. Use ''ascii'' instead. If you want to test for a fixed_8 encoding, you have to compare the encoding to ''ascii'', ''iso-8859-1'' and ''binary'' separately.'
tags:
- 'deprecated'
- 'opcodes'
@@ -379,7 +388,7 @@
-
name: 'logical_* vtables'
eligible: '2.7'
- note: 'These can be replaced by ''get_bool' and intval ops unless you're using them for things that aren't really logical ops (don't do that!). Logical vtables are removed in r49012, and logical ops on PMCs are converted to use 'get_bool' internally. Rakudo seems to depend on logical ops on PMC.'
+ note: 'These can be replaced by ''get_bool'' and intval ops unless you''re using them for things that aren''t really logical ops (don''t do that!). Logical vtables are removed in r49012, and logical ops on PMCs are converted to use ''get_bool'' internally. Rakudo seems to depend on logical ops on PMC.'
tags:
- 'deprecated'
- 'PMC'
@@ -411,6 +420,7 @@
tags:
- 'bytecode'
- 'experimental'
+ - 'completed'
ticket: 'https://trac.parrot.org/parrot/ticket/451'
-
name: 'open and close opcodes will be removed'
@@ -425,6 +435,7 @@
tags:
- 'bytecode'
- 'experimental'
+ - 'completed'
ticket: 'https://trac.parrot.org/parrot/ticket/451'
-
name: 'pkg-config support'
@@ -439,4 +450,4 @@
tags:
- 'experimental'
- 'functions'
- ticket: 'https://trac.parrot.org/parrot/ticket/1996'
+ ticket: 'https://trac.parrot.org/parrot/ticket/1996'
View
2  compilers/data_json/Defines.mak
@@ -1,5 +1,7 @@
DATA_JSON_LIB_PBCS = runtime/parrot/languages/data_json/data_json.pbc
+JSON_LANG = runtime/parrot/languages/JSON/JSON.pir
+
DATA_JSON_CLEANUPS = $(DATA_JSON_LIB_PBCS) \
compilers/data_json/data_json.pbc \
compilers/data_json/data_json/grammar.pir \
View
130 compilers/data_json/JSON.nqp
@@ -0,0 +1,130 @@
+#! parrot-nqp
+
+# Copyright (C) 2011, Parrot Foundation.
+
+# This is the start to rewrite JSON. It starts with rewriting data_json only.
+# data_json depends on the PGE. The rewrite use NQP.
+
+
+=begin Pod
+
+=for NAME
+JSON, a lightweight data-interchange format.
+
+=head1 SYNOPSIS
+
+The C<from_json> method return a PMC that containing the data structure
+for a given valid JSON (JavaScript Object Notation) string.
+For example:
+
+=begin code
+
+.sub 'main' :main
+ .local pmc result
+
+ load_language 'JSON'
+ result = from_json( '[1,2,3]' )
+
+ load_bytecode 'dumper.pbc'
+ _dumper( result, 'JSON' )
+.end
+
+=end code
+
+For more information about the structure of the JSON representation, see
+the documentation at L<http://www.json.org/>.
+
+=end Pod
+
+
+INIT {
+ pir::load_bytecode('P6Regex.pbc');
+}
+
+grammar JSON::Grammar is HLL::Grammar {
+ rule TOP { <value> }
+
+ proto token value { <...> }
+
+ token value:sym<string> { <string> }
+
+ token value:sym<number> {
+ '-'?
+ [ <[1..9]> <[0..9]>+ | <[0..9]> ]
+ [ '.' <[0..9]>+ ]?
+ [ <[Ee]> <[+\-]>? <[0..9]>+ ]?
+# <.worry('oh, a number!')>
+ }
+
+ rule value:sym<array> {
+ '[' [ <value> ** ',' ]? ']'
+ }
+
+ rule value:sym<object> {
+ '{'
+ [ [ <string> ':' <value> ] ** ',' ]?
+ '}'
+ }
+
+ token string {
+ <?["]> <quote_EXPR: ':qq'>
+ }
+}
+
+
+class JSON::Actions is HLL::Actions {
+ method TOP($/) {
+ make PAST::Block.new($<value>.ast, :node($/));
+ };
+
+ method value:sym<string>($/) { make $<string>.ast; }
+
+ method value:sym<number>($/) { make +$/; }
+
+ method value:sym<array>($/) {
+ my $past := PAST::Op.new(:pasttype<list>, :node($/));
+ if $<value> {
+ for $<value> { $past.push($_.ast); }
+ }
+ make $past;
+ }
+
+ method value:sym<object>($/) {
+ my $past := PAST::Stmts.new( :node($/) );
+ my $hashname := PAST::Compiler.unique('hash');
+ my $hash := PAST::Var.new( :scope<register>, :name($hashname),
+ :viviself('Hash'), :isdecl );
+ my $hashreg := PAST::Var.new( :scope<register>, :name($hashname) );
+ $past.'push'($hash);
+ # loop through all string/value pairs, add set opcodes for each pair.
+ my $n := 0;
+ while $n < +$<string> {
+ $past.'push'(PAST::Op.new( :pirop<set__vQ~*>, $hashreg,
+ $<string>[$n].ast, $<value>[$n].ast ) );
+ $n++;
+ }
+ # return the Hash as the result of this node
+ $past.'push'($hashreg);
+ make $past;
+ }
+
+ method string($/) { make $<quote_EXPR>.ast; }
+}
+
+
+class JSON::Compiler is HLL::Compiler {
+ INIT {
+ JSON::Compiler.language('JSON');
+ JSON::Compiler.parsegrammar(JSON::Grammar);
+ JSON::Compiler.parseactions(JSON::Actions);
+ }
+}
+
+
+sub from_json($value) {
+ my $result := JSON::Compiler.eval($value, :actions(JSON::Actions.new));
+ return $result;
+}
+
+
+# vim: expandtab shiftwidth=4 ft=perl6:
View
33 compilers/data_json/JSON_README.pod
@@ -0,0 +1,33 @@
+# Copyright (C) 2011, Parrot Foundation.
+
+# This is the start to rewrite JSON. It starts with rewriting data_json only.
+# data_json depends on the PGE. The rewrite use parrot-nqp.
+
+
+=head1 NAME
+
+JSON, a lightweight data-interchange format.
+
+=head1 SYNOPSIS
+
+The C<from_json> method return a PMC that containing the data structure
+for a given valid JSON (JavaScript Object Notation) string.
+For example:
+
+ .sub 'main' :main
+ .local pmc result
+
+ load_language 'JSON'
+ result = from_json( '[1,2,3]' )
+
+ load_bytecode 'dumper.pbc'
+ _dumper( result, 'JSON' )
+ .end
+
+To generate a JSON representation of a PMC, see
+L<runtime/parrot/library/JSON.pir>.
+
+For more information about the structure of the JSON representation, see
+the documentation at L<http://www.json.org/>.
+
+=cut
View
4 compilers/data_json/Rules.mak
@@ -2,6 +2,10 @@ runtime/parrot/languages/data_json/data_json.pbc: compilers/data_json/data_json.
$(MKPATH) runtime/parrot/languages/data_json
$(CP) compilers/data_json/data_json.pbc $@
+runtime/parrot/languages/JSON/JSON.pir: compilers/data_json/JSON.nqp $(NQP_RX)
+ $(MKPATH) runtime/parrot/languages/JSON
+ $(NQP_RX) --target=pir compilers/data_json/JSON.nqp > $@
+
compilers/data_json/data_json.pbc : \
$(LIBRARY_DIR)/PGE.pbc \
$(LIBRARY_DIR)/PGE/Util.pbc \
View
7 compilers/imcc/imcc.l
@@ -1218,7 +1218,8 @@ include_file(ARGMOD(imc_info_t *imcc), ARGIN(STRING *file_name), void *yyscanner
if (STRING_IS_NULL(s)
|| (file = PIO_OPEN(imcc->interp, s, PIO_F_READ)) == PIO_INVALID_HANDLE) {
- IMCC_fataly(imcc, EXCEPTION_EXTERNAL_ERROR, strerror(errno));
+ IMCC_fataly(imcc->interp, EXCEPTION_EXTERNAL_ERROR,
+ "No such file or directory");
}
frame->s.file = file_name;
@@ -1319,9 +1320,9 @@ determine_input_file_type(ARGMOD(imc_info_t * imcc), ARGIN(STRING *sourcefile))
}
}
else {
- if (Parrot_stat_info_intval(imcc->interp, sourcefile, STAT_ISDIR))
+ /*if (Parrot_stat_info_intval(imcc->interp, sourcefile, STAT_ISDIR))
Parrot_ex_throw_from_c_args(imcc->interp, NULL, EXCEPTION_EXTERNAL_ERROR,
- "imcc_compile_file: '%Ss' is a directory\n", sourcefile);
+ "imcc_compile_file: '%Ss' is a directory\n", sourcefile);*/
handle = PIO_OPEN(imcc->interp, sourcefile, PIO_F_READ);
if (handle == PIO_INVALID_HANDLE)
View
7 compilers/imcc/imclexer.c
@@ -5403,7 +5403,8 @@ include_file(ARGMOD(imc_info_t *imcc), ARGIN(STRING *file_name), void *yyscanner
if (STRING_IS_NULL(s)
|| (file = PIO_OPEN(imcc->interp, s, PIO_F_READ)) == PIO_INVALID_HANDLE) {
- IMCC_fataly(imcc, EXCEPTION_EXTERNAL_ERROR, strerror(errno));
+ IMCC_fataly(imcc->interp, EXCEPTION_EXTERNAL_ERROR,
+ "No such file or directory");
}
frame->s.file = file_name;
@@ -5503,9 +5504,9 @@ determine_input_file_type(ARGMOD(imc_info_t * imcc), ARGIN(STRING *sourcefile))
}
}
else {
- if (Parrot_stat_info_intval(imcc->interp, sourcefile, STAT_ISDIR))
+ /*if (Parrot_stat_info_intval(imcc->interp, sourcefile, STAT_ISDIR))
Parrot_ex_throw_from_c_args(imcc->interp, NULL, EXCEPTION_EXTERNAL_ERROR,
- "imcc_compile_file: '%Ss' is a directory\n", sourcefile);
+ "imcc_compile_file: '%Ss' is a directory\n", sourcefile);*/
handle = PIO_OPEN(imcc->interp, sourcefile, PIO_F_READ);
if (handle == PIO_INVALID_HANDLE)
View
9 compilers/opsc/src/Ops/Compiler/Actions.pm
@@ -88,6 +88,13 @@ method op($/) {
$op<type> := ~$<op_type>;
$op<normalized_args> := @norm_args;
+ if $op.need_write_barrier {
+ $op.push(PAST::Op.new(
+ :pasttype<inline>,
+ :inline(" PARROT_GC_WRITE_BARRIER(interp, CURRENT_CONTEXT(interp));\n")
+ ));
+ }
+
if !%flags<flow> {
my $goto_next := PAST::Op.new(
:pasttype('call'),
@@ -106,7 +113,7 @@ method op($/) {
$op.push($goto_next);
$op.push(PAST::Op.new(
:pasttype<inline>,
- :inline<;>
+ :inline(";\n"),
));
}
View
11 compilers/opsc/src/Ops/Op.pm
@@ -126,6 +126,17 @@ method name($name?) { self.attr('name', $name, defined($name)) }
method args($args?) { self.attr('args', $args, defined($args)) }
+method need_write_barrier() {
+ my $need := 0;
+ # We need write barriers only for (in)out PMC|STR
+ for self.args -> $a {
+ $need := ($a<type> eq 'STR' || $a<type> eq 'PMC')
+ && ($a<direction> eq 'out' || $a<direction> eq 'inout');
+ return $need if $need;
+ }
+ $need;
+}
+
method arg_types($args?) {
my $res := self.attr('arg_types', $args, defined($args));
View
57 config/auto/gc.pm
@@ -8,16 +8,36 @@ config/auto/gc.pm - Garbage Collection
Sets memory allocator.
-Currently, we have only one choice: the memory allocator in
-F<src/gc/alloc_resources.c>.
-
-In the future, we will have a C<--gc> command-line option which will enable
-the configurer to choose among several garbage collectors.
+The C<--gc> command-line option enables the configurer to choose among
+several garbage collectors. Current available options are:
=over 4
+=item ms
+
+Stop-the-world mark & sweep
+
+=item inf
+
+Infinite memory "collector"
+
+=item ms2
+
+New style mark & sweep
+
+=item gms
+
+Generational M&S based on MS2
+
=back
+The choice is stored as C<gc_type> in C<%PConfig>, and available
+(uppercased) as PARROT_GC_DEFAULT_TYPE in F<parrot/config.h>
+
+For backwards compatibility with parrot 3.1.0 and earlier, an empty
+entry C<gc_flag> is maintained. (It used to be used in Makefiles to
+append to the C compiler flags.)
+
=cut
package auto::gc;
@@ -27,8 +47,6 @@ use warnings;
use base qw(Parrot::Configure::Step);
-use Parrot::Configure::Utils ':auto';
-
sub _init {
my $self = shift;
my %data;
@@ -40,17 +58,24 @@ sub _init {
sub runstep {
my ( $self, $conf ) = @_;
- my $gc = 'gc';
-
- $conf->data->set(
- TEMP_gc_c => <<"EOF",
-src/gc/alloc_resources\$(O): \$(GEN_HEADERS) src/gc/alloc_resources.c
-EOF
- TEMP_gc_o => "src/gc/alloc_resources\$(O)",
- gc_flag => '',
- );
+ my $gc = $conf->options->get('gc') || 'gms';
$conf->debug(" ($gc) ");
+ my @known_gcs = qw<gms ms ms2 inf>;
+
+ if ($gc) {
+ if (!grep /$gc/, @known_gcs) {
+ die "unknown gc '$gc': valid gc cores are ".join(', ', @known_gcs);
+ }
+ $conf->data->set(gc_type => uc($gc));
+ $self->set_result($gc);
+ }
+ else {
+ $conf->data->set(gc_type => 'GMS');
+ $self->set_result('gms');
+ }
+ $conf->data->set(gc_flag => ''); # Compatibility with parrot-3.1.0 and earlier
+
return 1;
}
View
43 config/auto/perldoc.pm
@@ -46,47 +46,6 @@ sub runstep {
_handle_version($conf, $version, $cmd);
- my $TEMP_pod_build = <<'E_NOTE';
-
-# the following part of the Makefile was built by 'config/auto/perldoc.pm'
-
-E_NOTE
-
- opendir my $OPS, 'src/ops' or die "opendir ops: $!";
- my @ops = sort grep { !/^\./ && /\.ops$/ } readdir $OPS;
- closedir $OPS;
-
- my $TEMP_pod = join q{ } =>
- map { my $t = $_; $t =~ s/\.ops$/.pod/; "ops/$t" } @ops;
-
- my $new_perldoc = $conf->data->get('new_perldoc');
-
- foreach my $ops (@ops) {
- my $pod = $ops;
- $pod =~ s/\.ops$/.pod/;
- if ( $new_perldoc ) {
- $TEMP_pod_build .= <<"END"
-ops/$pod: ../src/ops/$ops
-\t\$(PERLDOC_BIN) -ud ops/$pod ../src/ops/$ops
-\t\$(CHMOD) 0644 ops/$pod
-
-END
- }
- else {
- $TEMP_pod_build .= <<"END"
-ops/$pod: ../src/ops/$ops
-\t\$(PERLDOC_BIN) -u ../ops/$ops > ops/$pod
-\t\$(CHMOD) 0644 ../ops/$pod
-
-END
- }
- }
-
- $conf->data->set(
- TEMP_pod => $TEMP_pod,
- TEMP_pod_build => $TEMP_pod_build,
- );
-
return 1;
}
@@ -98,8 +57,6 @@ sub _initial_content_check {
has_perldoc => 0,
new_perldoc => 0,
perldoc => 'echo',
- TEMP_pod => '',
- TEMP_pod_build => '',
);
$self->set_result('no');
return;
View
2  config/auto/platform.pm
@@ -42,11 +42,11 @@ sub _set_implementations {
my @impls = qw/
io.c
socket.c
+ file.c
time.c
encoding.c
env.c
dl.c
- stat.c
math.c
itimer.c
exec.c
View
1  config/auto/pmc.pm
@@ -426,7 +426,6 @@ include/parrot/vtables.h
include/parrot/has_header.h
include/parrot/warnings.h
include/parrot/op.h
-include/parrot/stat.h
include/parrot/debugger.h
include/parrot/caches.h
include/parrot/config.h
View
28 config/auto/stat.pm
@@ -44,6 +44,34 @@ sub runstep {
$self->_handle_bsd_stat($conf, $bsd_stat);
$conf->cc_clean();
+ my $stat_atim = 0;
+
+ $conf->cc_gen('config/auto/stat/test_atim_c.in');
+ eval { $conf->cc_build(); };
+ if (!$@) {
+ my $output = eval { $conf->cc_run() };
+ if (!$@ && $output =~ /OK/) {
+ $stat_atim = 1;
+ }
+ }
+ $conf->cc_clean();
+
+ $conf->data->set( HAS_STAT_ATIM => $stat_atim );
+
+ my $stat_atimespec = 0;
+
+ $conf->cc_gen('config/auto/stat/test_atimespec_c.in');
+ eval { $conf->cc_build(); };
+ if (!$@) {
+ my $output = eval { $conf->cc_run() };
+ if (!$@ && $output =~ /OK/) {
+ $stat_atimespec = 1;
+ }
+ }
+ $conf->cc_clean();
+
+ $conf->data->set( HAS_STAT_ATIMESPEC => $stat_atimespec );
+
return 1;
}
View
31 config/auto/stat/test_atim_c.in
@@ -0,0 +1,31 @@
+/*
+Copyright (C) 2010, Parrot Foundation.
+
+check if struct stat has st_atim, st_mtim and st_ctim
+
+*/
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <sys/stat.h>
+
+int
+main()
+{
+ struct stat st;
+ st.st_atim.tv_sec = 22;
+ st.st_atim.tv_nsec = 500;
+ st.st_mtim.tv_sec = 22;
+ st.st_mtim.tv_nsec = 500;
+ st.st_ctim.tv_sec = 22;
+ st.st_ctim.tv_nsec = 500;
+ printf("OK\n");
+ return EXIT_SUCCESS;
+}
+
+/*
+ * Local variables:
+ * c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4 cinoptions='\:2=2' :
+ */
View
31 config/auto/stat/test_atimespec_c.in
@@ -0,0 +1,31 @@
+/*
+Copyright (C) 2010, Parrot Foundation.
+
+check if struct stat has st_atimespec, st_mtimespec and st_ctimespec
+
+*/
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <sys/stat.h>
+
+int
+main()
+{
+ struct stat st;
+ st.st_atimespec.tv_sec = 22;
+ st.st_atimespec.tv_nsec = 500;
+ st.st_mtimespec.tv_sec = 22;
+ st.st_mtimespec.tv_nsec = 500;
+ st.st_ctimespec.tv_sec = 22;
+ st.st_ctimespec.tv_nsec = 500;
+ printf("OK\n");
+ return EXIT_SUCCESS;
+}
+
+/*
+ * Local variables:
+ * c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4 cinoptions='\:2=2' :
+ */
View
11 config/gen/config_h/config_h.in
@@ -82,6 +82,17 @@ struct PackFile; typedef struct PackFile * Parrot_PackFile;
#define PARROT_NOINLINE @noinline@
+/*
+ * GC_DEFAULT_TYPE selection
+ * MS -- stop-the-world mark & sweep
+ * INF -- infinite memory "collector"
+ * MS2 -- new style mark & sweep
+ * GMS -- Generational M&S based on MS2
+ */
+#ifndef PARROT_GC_DEFAULT_TYPE
+# define PARROT_GC_DEFAULT_TYPE @gc_type@
+#endif
+
#if defined(PARROT_IN_CORE)
/* Put any other symbols here. */
View
31 config/gen/makefiles/docs.in
@@ -10,46 +10,31 @@ RM_RF = @rm_rf@
PERLDOC_BIN = @perldoc@
VERSION = @VERSION@@DEVEL@
-# long list of .pod files
-POD = @TEMP_pod@
-
#
# Targets
#
-
-# The default target
-all: packfile-c.pod $(POD)
-
# 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
help :
@echo ""
- @echo "Following targets are available to the user:"
+ @echo "Following targets are available:"
@echo ""
- @echo "all: Generate documentation from .pod files or from the sources."
+ @echo "help Generate this usage statement."
@echo " This is the default target."
@echo ""
+ @echo "html Generate html documentation"
+ @echo "html-clean Remove html documentation"
+ @echo ""
@echo "htmlhelp: windows only, generate a .chm file."
@echo "htmlhelp-clean: Remove generated .chm"
@echo ""
@echo "pdf: Generate a PDF from the html docs"
@echo "pdf-clean: Remove generated pdf"
@echo ""
- @echo " clean: Remove the generated documentation."
+ @echo " clean: Invoke all clean targets"
@echo ""
-$(POD): doc-prep
-
-doc-prep:
- $(MKPATH) ops
- $(TOUCH) doc-prep
-
-packfile-c.pod: ../src/packfile/api.c
-#IF(new_perldoc): $(PERLDOC_BIN) -ud packfile-c.pod ../src/packfile/api.c
-#ELSE: $(PERLDOC_BIN) -u ../src/packfile/api.c > packfile-c.pod
-
-clean:
- $(RM_F) packfile-c.pod $(POD) doc-prep
+clean: htmlhelp-clean html-clean
html:
$(PERL) -I../lib ../tools/docs/make_html_docs.pl --version=$(VERSION)
@@ -78,8 +63,6 @@ htmlhelp: html
htmlhelp-clean:
#IF(win32): $(RM_F) "html/*.hhc" "html/*.hhk" "html/*.hhp" "html/*.chm"
-@TEMP_pod_build@
-
# Local variables:
# mode: makefile
# End:
View
42 config/gen/makefiles/root.in
@@ -91,7 +91,7 @@ C_LIBS = @libs@
CC_SHARED = @cc_shared@
CC_O_OUT = @cc_o_out@
CC_WARN = @ccwarn@
-CFLAGS = $(CC_INC) @ccflags@ @cc_build_call_frames@ @cc_debug@ @gc_flag@ @clock_best@ $(CC_SHARED)
+CFLAGS = $(CC_INC) @ccflags@ @cc_build_call_frames@ @cc_debug@ @clock_best@ $(CC_SHARED)
LINK_DYNAMIC = @link_dynamic@
LINK = @link@
LINKFLAGS = @linkflags@ @link_debug@ @ld_debug@
@@ -398,7 +398,6 @@ PARROT_H_HEADERS = \
$(INC_DIR)/multidispatch.h \
$(INC_DIR)/library.h \
$(INC_DIR)/namespace.h \
- $(INC_DIR)/stat.h \
$(INC_DIR)/hll.h \
$(INC_DIR)/pbcversion.h \
$(INC_DIR)/pobj.h \
@@ -453,10 +452,12 @@ INTERP_O_FILES = \
src/extend$(O) \
src/extend_vtable$(O) \
src/gc/alloc_memory$(O) \
+ src/gc/alloc_resources$(O) \
src/gc/api$(O) \
src/gc/gc_ms$(O) \
src/gc/gc_inf$(O) \
src/gc/gc_ms2$(O) \
+ src/gc/gc_gms$(O) \
src/gc/mark_sweep$(O) \
src/gc/system$(O) \
src/gc/fixed_allocator$(O) \
@@ -506,7 +507,6 @@ INTERP_O_FILES = \
src/longopt$(O) \
@TEMP_platform_o@ \
@TEMP_atomic_o@ \
- @TEMP_gc_o@ \
OPS_FILES = @ops@
@@ -622,6 +622,7 @@ all : \
$(PGE_LIB_PBCS) \
$(PCT_LIB_PBCS) \
$(DATA_JSON_LIB_PBCS) \
+ $(JSON_LANG) \
$(NQP_LIB_PBCS) \
#IF(has_dynamic_linking): $(DYNOPLIBS_TARGETS) \
#IF(has_dynamic_linking): $(LIBNCI_TEST_SO) \
@@ -756,7 +757,6 @@ help :
@echo ""
@echo "Documentation:"
@echo " help: Print this help message."
- @echo " docs: Generate documentation from POD in the sources."
@echo " html: Generate HTML documentation from POD in the sources."
@echo " html-clean: Remove the HTML documentation."
@echo " htmlhelp: Compile HTML documentation (CHM format)."
@@ -1234,8 +1234,8 @@ runtime/parrot/include/dlopenflags.pasm : $(INC_DIR)/platform_interface.h $(H2IN
runtime/parrot/include/datatypes.pasm : $(INC_DIR)/datatypes.h $(H2INC)
$(PERL) $(H2INC) $(INC_DIR)/datatypes.h $@
-runtime/parrot/include/stat.pasm : $(INC_DIR)/stat.h $(H2INC)
- $(PERL) $(H2INC) $(INC_DIR)/stat.h $@
+runtime/parrot/include/stat.pasm : $(INC_DIR)/platform_interface.h $(H2INC)
+ $(PERL) $(H2INC) $(INC_DIR)/platform_interface.h $@
runtime/parrot/include/stringinfo.pasm : $(INC_DIR)/string.h $(H2INC)
$(PERL) $(H2INC) $(INC_DIR)/string.h $@
@@ -1383,6 +1383,16 @@ src/gc/fixed_allocator$(O) : \
src/gc/fixed_allocator.h \
src/gc/fixed_allocator.c
+src/gc/gc_gms$(O) : \
+ $(PARROT_H_HEADERS) \
+ src/gc/gc_gms.c \
+ $(INC_DIR)/pointer_array.h \
+ src/gc/gc_private.h \
+ src/gc/fixed_allocator.h \
+ src/gc/variable_size_pool.h
+
+src/gc/api$(O) : $(PARROT_H_HEADERS) src/gc/gc_private.h src/gc/api.c
+
src/gc/variable_size_pool$(O) : $(PARROT_H_HEADERS) \
src/gc/variable_size_pool.h src/gc/variable_size_pool.c
@@ -1630,6 +1640,8 @@ src/platform/generic/error$(O) : src/platform/generic/error.c $(PARROT_H_HEADERS
src/platform/generic/exec$(O) : src/platform/generic/exec.c $(PARROT_H_HEADERS)
+src/platform/generic/file$(O) : src/platform/generic/file.c $(PARROT_H_HEADERS)
+
src/platform/generic/hires_timer$(O) : src/platform/generic/hires_timer.c $(PARROT_H_HEADERS)
src/platform/generic/itimer$(O) : src/platform/generic/itimer.c $(PARROT_H_HEADERS)
@@ -1644,8 +1656,6 @@ src/platform/generic/misc$(O) : src/platform/generic/misc.c $(PARROT_H_HEADERS)
src/platform/generic/socket$(O) : $(PARROT_H_HEADERS) include/pmc/pmc_socket.h \
src/io/io_private.h include/pmc/pmc_sockaddr.h src/platform/generic/socket.c
-src/platform/generic/stat$(O) : src/platform/generic/stat.c $(PARROT_H_HEADERS)
-
src/platform/generic/sysmem$(O) : src/platform/generic/sysmem.c $(PARROT_H_HEADERS)
src/platform/generic/time$(O) : src/platform/generic/time.c $(PARROT_H_HEADERS)
@@ -1670,6 +1680,8 @@ src/platform/win32/error$(O) : src/platform/win32/error.c $(PARROT_H_HEADERS)
src/platform/win32/exec$(O) : src/platform/win32/exec.c $(PARROT_H_HEADERS)
+src/platform/win32/file$(O) : src/platform/win32/file.c $(PARROT_H_HEADERS)
+
src/platform/win32/hires_timer$(O) : src/platform/win32/hires_timer.c $(PARROT_H_HEADERS)
src/platform/win32/io$(O) : $(PARROT_H_HEADERS) src/io/io_private.h \
@@ -1897,7 +1909,6 @@ src/ops/core_ops$(O) : src/ops/core_ops.c \
include/pmc/pmc_parrotlibrary.h \
src/io/io_private.h
-@TEMP_gc_c@
@TEMP_pmc_build@
@@ -1913,18 +1924,6 @@ $(INC_DIR)/vtable.h : src/vtable.tbl $(BUILD_TOOLS_DIR)/vtable_h.pl lib/Parrot/V
#
###############################################################################
-#IF(has_perldoc):docs : docs.dummy
-#ELSE:docs : docs.stub
-
-docs.stub:
- @echo "Perldoc is required, but not detected."
-
-docs.dummy :
- $(MAKE) docs
-
-docs-clean :
- $(MAKE) docs clean
-
#IF(has_perldoc):html : html.dummy
#ELSE:html : html.stub
@@ -2228,7 +2227,6 @@ clean : \
test-clean \
prog-clean \
dynext-clean \
-#IF(has_perldoc): docs-clean \
#IF(has_perldoc): html-clean \
examples-clean \
ext-clean \
View
2  docs/embed.pod
@@ -160,7 +160,7 @@ The default. No flags.
=item PARROT_BOUNDS_FLAG
-True if byte code bounds should be tracked.
+True if bytecode bounds should be tracked.
=item PARROT_GC_DEBUG_FLAG
View
4 docs/embed_new.pod
@@ -281,6 +281,8 @@ like normal if it is found to be unreachable.
=over 4
+=item *
+
TODO
=back
@@ -325,7 +327,7 @@ performing both compiling and linking in one step.
=head2 Load bytecode as a library and run a single subroutine
TODO
-
+
=head1 SEE ALSO
F<frontend/parrot/main.c> and F<t/src/embed/*.t> for Parrot's use of the
View
2  docs/gettingstarted.pod
@@ -158,7 +158,7 @@ L<http://lists.parrot.org/pipermail/parrot-dev/>
=back
-In addition, there is a mailing list which logs all commits to the Parrot SVN
+In addition, there is a mailing list which logs all commits to the Parrot Git
repository. If you're interested in Parrot development, you might find it very
helpful to subscribe and keep up on changes that people are making.
View
48 docs/glossary.pod
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2008, Parrot Foundation.
+# Copyright (C) 2001-2011, Parrot Foundation.
=head1 NAME
@@ -8,6 +8,14 @@ docs/glossary.pod - Parrot Glossary
Short descriptions of words and acronyms found in Parrot development.
+=head1 VERSION
+
+LAST UPDATED: 14 FEB 2011
+
+glossary.pod is updated and maintained from Parrot's GitHub repository.
+You may get the most up-to-date version at:
+L<< https://github.com/parrot/parrot/docs/glossary.pod >>
+
=head1 GLOSSARY
=for comment
@@ -22,8 +30,8 @@ parser.
=item bcg
-Byte Code Generation: bcg will be part of the Parrot Compiler
-tools. It will aid in converting POST to byte code.
+Bytecode Generation: bcg will be part of the Parrot Compiler
+tools. It will aid in converting POST to bytecode.
=item Continuations
@@ -208,9 +216,14 @@ abstract syntax tree.
See also L<"PCT">.
+=item PASM
+
+Parrot Assembly Language is the lowest level language before being translated
+in to bytecode. Generally PIR is used.
+
=item PBC
-Parrot Byte Code. The name for the "executable" files that can be passed to the
+Parrot bytecode. The name for the "executable" files that can be passed to the
Parrot interpreter for immediate execution (although PASM and IMC files can be
executed directly, too).
@@ -235,7 +248,13 @@ be added, or overridden (for instance, the PAST to PIR transformation).
Parrot Design Document: documents that describe the features parrot must
implement.
-See also L<pdds/pdd00_pdd>.
+See also L<< http://github.com/parrot/parrot/docs/pdds/pdd00_pdd.pod.html >>.
+
+=begin html
+
+<a href="http://github.com/parrot/parrot/docs/pdds/pdd00_pdd.pod">pdd00_pdd.pod</a>
+
+=end html
=item PGE
@@ -254,6 +273,17 @@ that hides messy details like register allocation so language compiler writers
who target Parrot don't have to roll their own. Files have the
extension C<.pir>.
+=item PIRATE
+
+PIRATE is Parrot's next generation compiler, and is currently under development.
+IMCC is still the current compiler.
+
+=item PIRC
+
+Parrot Intermediate Representation Compiler. It is an experimental attempt
+to replace IMCC, but could the PIR for IMCC. Work on PIRC is incomplete,
+and the next generation compiler is PIRATE.
+
=item PMC
Polymorphic Container: these classes are the primitives that
@@ -311,9 +341,11 @@ L<http://www.perl.com/pub/a/2003/02/p6pdigest/20030216.html>
=item run core
aka run loop, aka runcore. The way Parrot executes PBCs.
-See L<running.pod> for a list of available runcores, and how to tell
+See running.pod for a list of available runcores, and how to tell
parrot which one to use.
+running.pod: L<< https://github.com/parrot/parrot/parrot/docs/running.pod >>
+
=item SMOP
Simple Meta Object Protocol: A prototype object model written in PIR.
@@ -332,8 +364,8 @@ are pre-selected, and there is no direct way to invoke them from PIR.
=item Warnock's Dilemma
The dilemma you face when posting a message to a public forum about something
-and not even getting an acknowledgment of its existence. This leaves you
-wondering if your problem is unimportant or previously addressed, if everyone's
+and not even getting an acknowledgement of its existence. This leaves you
+wondering if your problem is unimportant or previously addressed, if everyone is
waiting on someone else to answer you, or if maybe your mail never actually
made it to anyone else in the forum.
View
2  docs/imcc/imcfaq.pod
@@ -53,7 +53,7 @@ IMCC into Parrot and now IMCC is B<the> front-end for the Parrot VM.
=head2 Parrot is a VM, why does it need IMCC builtin?
Static languages, such as Java, can run on VMs that are dedicated to execution
-of pre-compiled byte code with no problems. Languages such as Perl, Ruby and
+of pre-compiled bytecode with no problems. Languages such as Perl, Ruby and
Python are not so static. They have support for runtime evaluation and
compilation and their parsers are always available. These languages run on
their own "dynamic" interpreters.
View
16 docs/index/developer.json
@@ -17,6 +17,22 @@
},
{
"source" : [
+ "docs/project/cage_cleaners_guide.pod",
+ "docs/project/committer_guide.pod",
+ "docs/project/core_inclusion.pod",
+ "docs/project/git_terminology.pod",
+ "docs/project/git_workflow.pod",
+ "docs/project/merge_review_guidelines.pod",
+ "docs/project/metacommitter_guide.pod",
+ "docs/project/release_manager_guide.pod",
+ "docs/project/ticket_triaging.pod",
+ "docs/project/debian_packaging_guide.pod",
+ "docs/project/ubuntu_packaging_guide.pod"
+ ],
+ "title" : "Project Documentation"
+ },
+ {
+ "source" : [
"docs/user/pir/*",
"docs/pmc/array.pod",
"docs/pmc/struct.pod",
View
2  docs/intro.pod
@@ -155,7 +155,7 @@ will look something like this:
It is possible that a number of tests may fail. If this is a small number, then
it is probably little to worry about, especially if you have the latest Parrot
-sources from the SVN repository. However, please do not let this discourage you
+sources from the Git repository. However, please do not let this discourage you
from reporting test failures, using the same method as described for reporting
build problems.
View
6 docs/parrotbyte.pod
@@ -143,7 +143,7 @@ Debug segment
This is not determined yet.
-=head2 Unknown (default) and byte code segments
+=head2 Unknown (default) and bytecode segments
These have only the common segment header and the opcode stream appended. The
opcode stream is an F<mmap()>ed memory region, if your operating system
@@ -241,7 +241,7 @@ For each constant:
For integer constants:
<< integer constants are represented as manifest constants in
- the byte code stream currently, limiting them to 32 bit values. >>
+ the bytecode stream currently, limiting them to 32 bit values. >>
For number constants (S is constant, and is equal to C<sizeof(FLOATVAL)>):
@@ -284,7 +284,7 @@ If S' E<gt> S, then the extra bytes are filled with zeros.
=head2 BYTE CODE SEGMENT
-The pieces that can be found in the byte code segment are as follows:
+The pieces that can be found in the bytecode segment are as follows:
+----------+----------+----------+----------+
| Operation Code |
View
3  docs/parrothist.pod
@@ -121,6 +121,7 @@ Starred release numbers indicate supported releases.
Gerd 2.10.1 2010-Nov-18 (bugfix release)
Whiteknight 2.11.0 2010-Dec-21 "At The ROFLBBQ"
- cotto 3.0.0 * 2011-Jan-18 "Beef Stew"
+ cotto 3.0.0 * 2011-Jan-18 "Beef Stew"
+ mikehh 3.1.0 2011-Feb-15 "Budgerigar"
=cut
View
138 docs/project/committer_guide.pod
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2008, Parrot Foundation.
+# Copyright (C) 2007-2011, Parrot Foundation.
=head1 Committer Guide
@@ -12,9 +12,9 @@ From F<docs/project/roles_responsibilities.pod>:
=head1 Adding new files
-To add a new file to Parrot, in your svn working copy use the command:
+To add a new file to Parrot, in your git working copy use the command:
- % svn add <filename>
+ % git add <filename>
=head1 MANIFEST
@@ -23,64 +23,18 @@ by running:
% perl tools/dev/mk_manifest_and_skip.pl
-=head1 svn properties setting (file endings, text/binary, svn keywords)
-
-New files also need to have the appropriate svn properties set. For most
-files this requires setting the C<svn:eol-style>, C<svn:keywords> and
-C<svn:mime-type> properties.
-
-You can check the svn properties by running:
-
- % perl t/distro/file_metadata.t
-
-=head2 C<svn:eol-style>
-
-Most files in Parrot should have the file endings set to "native". You do
-this like so:
-
- % svn propset svn:eol-style native <filename>
-
-Some files, however, require that the C<svn:eol-style> set explicitly to
-"LF". These files are documented in F<t/distro/file_metadata.t>. You set
-their property appropriately by:
-
- % svn propset svn:eol-style LF <filename>
-
-=head2 C<svn:mime-type>
-
-For most files the C<svn:mime-type> property should be set correctly,
-except for C<*.t> files which svn thinks they are troff files, so they need
-their C<svn:mime-type> set explicitly to "text/plain":
-
- % svn propset svn:mime-type text/plain <filename>
-
-=head2 C<svn:keywords>
-
-All (text) files should have the C<svn:keywords> property set to
-C<Author Date Id Revision>. The command being:
-
- % svn propset svn:keywords 'Author Date Id Revision' <filename>
-
-Also, text files should have the following line somewhere near the beginning
-of the file (usually after the Copyright notice):
-
-
-(of course for C-language files you want to wrap this in C-style comments).
-
=head1 Ignored files
Files generated by Parrot at build time should get ignored such that
-C<svn status> doesn't pick them up. They also need to get added to
+Cgit status> doesn't pick them up. They also need to get added to
MANIFEST.SKIP so that Parrot's configuration mechanism doesn't complain
-about extra files. You can tell svn to ignore files by setting the
-C<svn:ignore> property like so:
-
- $ svn propset svn:ignore <filename>
+about extra files. You can tell git to ignore files by adding them to
+F<.gitignore>.
=head1 Tests before committing; make codetest
-Your Parrot working copy must C<make> successfully before
-committing your changes to the repository.
+Your Parrot working copy must C<make> successfully before committing your
+changes to the repository.
It would be best practice to run C<make test> and make sure that your change
hasn't broken anything before committing.
@@ -100,12 +54,10 @@ depending upon the current language's comment character):
=head1 Removing files
-To remove a file from the Parrot source, you need to use the C<svn rm>
+To remove a file from the Parrot source, you need to use the C<git rm>
command:
- % svn rm <filename>
-
-Also note that C<svn remove> and C<svn delete> do the same thing.
+ % git rm <filename>
Removing files is much the same as adding files in that you need to run
F<tools/dev/mk_manifest_and_skip.pl> to create the MANIFEST and
@@ -113,74 +65,10 @@ MANIFEST.SKIP files appropriately. Also, you should check that you've not
broken anything by running C<make test> before committing the removal to the
repository.
-=head1 Branching and merging
-
-To create a new branch from the parrot trunk you use the command:
-
- % svn copy https://svn.parrot.org/parrot/trunk \
- https://svn.parrot.org/parrot/branches/<branch_name> \
- -m "Creating a private branch of parrot/trunk."
-
-where you might want to be a bit more informative in the commit message than
-that given here. This copies the C<trunk> branch across to a new branch
-called C<branch_name> underneath the C<branches> subdirectory of the parrot
-repository.
-
-=head2 Merging changes I<into> trunk
-
-You first need to work out when the branch occurred. This is done with
-C<svn log>:
-
- % svn log -v --stop-on-copy https://svn.parrot.org/parrot/branches/<branch_name>
-
-This will tell you the revision number when the branch happened. You now
-need a clean working copy of C<trunk>, where you issue the command:
-
- % svn merge -r<revision_number>:HEAD https://svn.parrot.org/parrot/branches/<branch_name>
-
-Run C<svn status>, check the output of C<svn diff> to make sure things look
-sane, build parrot and run the test suite with C<make test> and if
-everything works, you can then commit this change to trunk.
-
-=head2 Merging changes I<from> trunk
-
-This works almost exactly the same as merging changes into trunk except it's
-in the opposite direction. Now what you need is to work out when you
-branched from trunk (again with the help of C<svn log> and its
-C<--stop-on-copy> argument), having a clean working copy of your branch, and
-then running the command:
-
- % svn merge -r<revision_number>:HEAD https://svn.parrot.org/parrot/trunk
-
-Again, build and run the test suite to make sure everything worked (you
-might also have to resolve any conflicts) and then you can check in your
-change to the branch.
-
-=head1 Rollbacks
-
-It is sometimes necessary to undo a commit. The best way to do this is with
-a working copy without local modifications, and then issue the command:
-
- % svn merge -c <revision_number> https://svn.parrot.org/parrot/trunk
-
-This merges I<out> the change which occurred in the C<trunk> branch at the
-revision C<revision_number>. This command works with Subversion versions
-1.4 and above. Below this version number, you'll need to use
-
- % svn merge -r <revision_number>:<revision_number-1> https://svn.parrot.org/parrot/trunk
-
-This merges the change in C<revision_number> I<backwards> so undoes it.
-
-Note that these changes only occur in the current working copy. To make the
-undo permanent, you need to commit the change in order for it to take
-effect. This is, of course, (after making sure there aren't any conflicts,
-that C<svn diff> looks correct, and running the test suite to make
-B<absolutely sure> that nothing got broken in the process of undoing the
-change).
-
-=head1 AUTHOR
+=head1 Working with Git
-Paul Cochrane <paultcochrane at gmail dot com>
+Our recommended workflow for git is documented in
+F<docs/project/git_workflow.pod>.
=head1 SEE ALSO
View
6 docs/project/core_inclusion.pod
@@ -2,9 +2,11 @@
=pod
-=head1 Name
+=head1 NAME
-docs/project/core_inclusion.pod - Questions we'll consider when deciding if a
+docs/project/core_inclusion.pod - Core Inclusion
+
+Questions we'll consider when deciding if a
piece of code should be moved into core.
=head1 Abstract
View
25 docs/project/git_workflow.pod
@@ -234,6 +234,31 @@ want tested.
=back
+=head2 Merging a Github Pull Request
+
+If someone has sent the Parrot Github Organization a pull request, life is a
+bit easier now. If pull request #123 has been sent, then type:
+
+ perl tools/dev/merge_pull_request.pl 123
+
+and you will automatically be on a branch called pull_request_123 with all
+commits in the pull request applied as individually signed-off commits. Now
+you can review the code, run tests, etc and vet the code. You can even type
+
+ git checkout -b way_cooler_branch_name
+
+if you want a more informative branch name than the autogenerated one.
+
+If you want to merge this code to master, you then type
+
+ git checkout master
+ git merge --no-ff pull_request_123
+
+Don't forget to close the pull request manually, since signing off on the
+commits changes their SHA1s, which means Github can't detect the merge and
+autoclose the pull request. That's it!
+
+
=head2 Merging a Branch
When you're ready to merge your changes back into master, use the C<git merge>
View
39 docs/project/metacommitter_guide.pod
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2009, Parrot Foundation.
+# Copyright (C) 2007-2011, Parrot Foundation.
=head1 Metacommitter Guide
@@ -16,14 +16,10 @@ the Metacommitter can add commit rights.
=item 1
-Create an account on L<https://trac.parrot.org/parrot>.
+Create an account on L<https://github.com>
=back
-You only need to create one account for both the "parrot" and
-"languages" repositories, though the Metacommitter will need to grant
-permissions to the two repositories separately.
-
=head2 Instructions for the Metacommitter
The new committer must perform the above procedure before
@@ -33,42 +29,19 @@ the Metacommitter can add commit rights.
=item 1
-Login to Trac at L<https://trac.parrot.org/parrot/>
+Go to the Parrot Developers Team in the Parrot Github Organization
+L<https://github.com/organizations/parrot/teams/12270>
=item 2
-Navigate to the Admin -> Permissions page,
-L<https://trac.parrot.org/parrot/admin/general/perm>
-
-=item 3
-
-If the user is not already in the "developer" group (for access to
-administer tickets), enter the username in the "Add Subject to Group"
-box, and add them to the "developer" group.
-
-
-=item 4
-
-Navigate to the Admin -> Subversion Access page
-L<https://trac.parrot.org/parrot/admin/subversion/svnauthz> and select
-the "parrot_committers" group.
-
-=item 5
-
-Select the username from the "Add Group Member to parrot_committers"
-listbox, and click the "Add" button. (Note that the username won't
-appear in the drop box until they've been granted "developer"
-permissions.)
+Scroll down to the bottom of the page, type in the username of the
+Github user that you want to give commit access, and press "Add".
=back
Congratulate the new member publicly by sending an email to
parrot-dev@lists.parrot.org, and copying the new committer.
-The steps for the "languages" repository and Trac instance are the same,
-except the URLs are L<https://trac.parrot.org/languages/...> and the
-committer group is "languages_committers".
-
Note that commit messages from the new member will be automatically held
pending list-admin approval.
View
3  docs/project/release_manager_guide.pod
@@ -1,6 +1,6 @@
# Copyright (C) 2007-2011, Parrot Foundation.
-=head1 Release Instructions
+=head1 Release Manager Guide
To prepare a release:
@@ -433,7 +433,6 @@ L<http://www.google.com/calendar/render?cid=ldhctdamsgfg5a1cord52po9h8@group.cal
Versions with a asterisk (*) are supported releases.
- - Feb 15, 2011 - 3.1 - mikehh
- Mar 15, 2011 - 3.2 - gerd
- Apr 19, 2011 - 3.3* - whiteknight
- May 17, 2011 - 3.4 - gerd
View
21 docs/project/support_policy.pod
@@ -108,15 +108,18 @@ very rare.
=head2 Experimental Features
From time to time, we may add features to get feedback on their utility and
-<<<<<<< HEAD
-design. Marking them as "Experimental" in F<DEPRECATED.yaml> indicates that we
-=======
-design. Marking them as "Experimental" in F<DEPRECATED.json> indicates that we
->>>>>>> leto/deprecations_as_data
+design. Marking them as "Experimental" in F<api.yaml> indicates that we
may modify or remove them without official deprecation notices. Use them at
your own risk--and please provide feedback through official channels if you use
them successfully or otherwise.
+=head2 Changes Requiring Users to Add Code
+
+Internal changes to Parrot which require users to add code in order to continue
+functioning normally also fall under our support policy. An example of this
+kind of change is the addition of the generational gc, which required a write
+barrier on VTABLE functions which modified the contents of a PMC.
+
=head2 Supported Older Versions
We support a version of Parrot by accepting patches and bug reports for
@@ -206,6 +209,8 @@ backwards-incompatible change requires deprecation:
=item * API changes in the compiler tools
+=item * changes to Parrot that require HLLs or libraries to add code
+
=back
Please note that these features I<do not> require deprecation notices:
@@ -219,11 +224,7 @@ of the public API (listed in docs/embed.pod)
=item * Parrot internals hidden behind a public API