Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Merge branch 'master' into separator_fixes

  • Loading branch information...
commit 1387fd9ee34845ceeba602f91ddcb1edfd694519 2 parents a634809 + 6c302cf
@Whiteknight Whiteknight authored
Showing with 10,798 additions and 16,118 deletions.
  1. +6 −0 .gitignore
  2. +45 −0 .travis.yml
  3. +11 −4 CREDITS
  4. +98 −0 ChangeLog
  5. +15 −0 Configure.pl
  6. +20 −10 MANIFEST
  7. +14 −0 MANIFEST.SKIP
  8. +4 −2 MANIFEST.generated
  9. +9 −5 README
  10. +4 −3 RESPONSIBLE_PARTIES
  11. +3 −3 TODO
  12. +1 −1  VERSION
  13. +57 −36 api.yaml
  14. +2 −2 compilers/imcc/api.c
  15. +3 −3 compilers/imcc/cfg.c
  16. +3 −1 compilers/imcc/imcc.l
  17. +1 −1  compilers/imcc/imcc.y
  18. +823 −872 compilers/imcc/imcparser.c
  19. +9 −7 compilers/imcc/imcparser.h
  20. +0 −25 compilers/imcc/main.c
  21. +7 −5 compilers/imcc/optimizer.c
  22. +66 −37 compilers/imcc/pbc.c
  23. +2 −90 compilers/imcc/pcc.c
  24. +1 −1  compilers/imcc/reg_alloc.c
  25. +2 −1  compilers/opsc/src/Ops/Emitter.pm
  26. +8 −7 compilers/opsc/src/Ops/Trans/C.pm
  27. +1 −1  compilers/pct/src/PAST/Compiler.pir
  28. +11 −16 compilers/pct/src/PCT/HLLCompiler.pir
  29. +1 −1  config/auto/byteorder.pm
  30. +4 −0 config/auto/gcc.pm
  31. +1 −1  config/auto/headers.pm
  32. +4 −8 config/auto/icu.pm
  33. +33 −27 config/auto/warnings.pm
  34. +1 −1  config/gen/makefiles/docs.in
  35. +201 −175 config/gen/makefiles/root.in
  36. +1 −1  config/init/defaults.pm
  37. +3 −0  config/init/hints.pm
  38. +6 −7 config/init/hints/cygwin.pm
  39. +2 −2 config/init/hints/darwin.pm
  40. +13 −5 config/init/hints/mswin32.pm
  41. +54 −0 docs/binaries/ops2c.pod
  42. +80 −0 docs/binaries/parrot-nqp.pod
  43. +414 −0 docs/binaries/parrot.pod
  44. +73 −0 docs/binaries/parrot_nci_thunk_gen.pod
  45. +2 −2 docs/book/draft/appe_source_code.pod
  46. +7 −7 docs/book/draft/ch01_introduction.pod
  47. +2 −2 docs/book/draft/ch10_opcode_reference.pod
  48. +7 −7 docs/book/pct/ch01_introduction.pod
  49. +7 −8 docs/book/pir/ch01_introduction.pod
  50. +2 −2 docs/book/pir/ch04_variables.pod
  51. +0 −11 docs/book/pir/ch08_io.pod
  52. +2 −2 docs/configuration.pod
  53. +2 −2 docs/deprecations/deprecations.pod
  54. +1 −1  docs/faq.pod
  55. +9 −9 docs/gettingstarted.pod
  56. +0 −15 docs/glossary.pod
  57. +3 −3 docs/intro.pod
  58. +0 −2  docs/parrot.pod
  59. +10 −2 docs/parrothist.pod
  60. +1 −3 docs/pdds/draft/pdd06_pasm.pod
  61. +1 −1  docs/pdds/pdd03_calling_conventions.pod
  62. +5 −1 docs/project/cage_cleaners_guide.pod
  63. +1 −1  docs/project/committer_guide.pod
  64. +17 −0 docs/project/hacking_tips.pod
  65. +2 −27 docs/project/metacommitter_guide.pod
  66. +149 −135 docs/project/release_manager_guide.pod
  67. +321 −0 docs/project/release_parrot_github_guide.pod
  68. +7 −3 docs/project/ticket_triaging.pod
  69. +21 −141 docs/submissions.pod
  70. +3 −6 docs/tests.pod
  71. +1 −1  docs/translations/README.BGR
  72. +1 −1  docs/translations/README.deutsch
  73. +1 −1  docs/translations/README.espanol
  74. +1 −1  docs/translations/README.francais
  75. +1 −1  docs/translations/README.polski
  76. +1 −1  docs/translations/README.pt-BR
  77. +3 −3 examples/benchmarks/oo1.pir
  78. +3 −3 examples/benchmarks/oo2.pir
  79. +3 −3 examples/benchmarks/oo3.pir
  80. +0 −43 examples/benchmarks/oo4.pasm
  81. +0 −29 examples/benchmarks/oo4.pl
  82. +0 −14 examples/benchmarks/oo4.py
  83. +0 −19 examples/benchmarks/oo4.rb
  84. +1 −0  examples/config/file/configcompiler
  85. 0  t/configure/testlib/verbosefoobar → examples/config/file/configverbose
  86. +2 −2 examples/languages/abc/setup.pir
  87. +1 −1  examples/languages/squaak/doc/tutorial_episode_1.pod
  88. +3 −3 examples/languages/squaak/doc/tutorial_episode_4.pod
  89. +2 −2 examples/languages/squaak/doc/tutorial_episode_5.pod
  90. +1 −1  examples/languages/squaak/doc/tutorial_episode_6.pod
  91. +2 −2 examples/pir/befunge/setup.pir
  92. +1 −1  examples/pir/make_hello_pbc.pir
  93. +1 −1  examples/sdl/tetris/block.pir
  94. +18 −18 examples/sdl/tetris/board.pir
  95. +1 −1  ext/nqp-rx/src/stage0/HLL-s0.pir
  96. +2 −2 ext/nqp-rx/src/stage0/Regex-s0.pir
  97. +1 −1  ext/winxed/Rules.mak
  98. +1,323 −8,196 ext/winxed/compiler.pir
  99. +149 −282 ext/winxed/driver.pir
  100. +0 −1  frontend/parrot/main.c
  101. +3 −2 frontend/parrot2/build.pir
  102. +12 −5 frontend/parrot2/main.c
  103. +50 −27 frontend/parrot_debugger/main.c
  104. +9 −1 frontend/pbc_disassemble/main.c
  105. +91 −30 frontend/pbc_dump/main.c
  106. +2 −2 frontend/pbc_dump/packdump.c
  107. +4 −4 frontend/pbc_merge/main.c
  108. +23 −8 include/parrot/api.h
  109. +10 −0 include/parrot/call.h
  110. +8 −0 include/parrot/compiler.h
  111. +0 −23 include/parrot/context.h
  112. +8 −0 include/parrot/exceptions.h
  113. +0 −1  include/parrot/gc_api.h
  114. +17 −6 include/parrot/hash.h
  115. +202 −195 include/parrot/interpreter.h
  116. +0 −11 include/parrot/library.h
  117. +1 −1  include/parrot/memory.h
  118. +12 −3 include/parrot/oplib/core_ops.h
  119. +219 −210 include/parrot/oplib/ops.h
  120. +219 −210 include/parrot/opsenum.h
  121. +7 −19 include/parrot/packfile.h
  122. +5 −0 include/parrot/parrot.h
  123. +45 −0 include/parrot/pmc.h
  124. +36 −60 include/parrot/pointer_array.h
  125. +2 −2 include/parrot/runcore_profiling.h
  126. +2 −2 include/parrot/runcore_subprof.h
  127. +1 −1  include/parrot/scheduler.h
  128. +0 −8 include/parrot/sub.h
  129. +37 −23 lib/Parrot/Configure/Compiler.pm
  130. +11 −1 lib/Parrot/Configure/Options/Conf/File.pm
  131. +19 −5 lib/Parrot/Distribution.pm
  132. +9 −9 lib/Parrot/Docs/File.pm
  133. +19 −0 lib/Parrot/Docs/HTMLPage.pm
  134. +3 −3 lib/Parrot/Docs/POD2HTML.pm
  135. +3 −2 lib/Parrot/Headerizer.pm
  136. +4 −4 lib/Parrot/IO/File.pm
  137. +2 −2 lib/Parrot/IO/Path.pm
  138. +10 −10 lib/Parrot/Manifest.pm
  139. +6 −6 lib/Parrot/Pmc2c/PMC.pm
  140. +1 −1  lib/Parrot/Pmc2c/PMC/RO.pm
  141. +1 −1  lib/Parrot/Pmc2c/PMC/default.pm
  142. +2 −2 lib/Parrot/Test/Pod.pm
  143. +2 −3 parrotbug
  144. +1 −1  runtime/parrot/bin/prove.pir
  145. +28 −28 runtime/parrot/include/green_threads.pir
  146. +1 −1  runtime/parrot/include/hllmacros.pir
  147. +4 −4 runtime/parrot/library/Archive/Tar.pir
  148. +14 −14 runtime/parrot/library/Archive/Zip.pir
  149. +1 −1  runtime/parrot/library/Configure/genfile.pir
  150. +2 −2 runtime/parrot/library/P6object.pir
  151. +1 −1  runtime/parrot/library/ProfTest/PIRProfile.nqp
  152. +1 −1  runtime/parrot/library/SDL/Surface.pir
  153. +1 −2  runtime/parrot/library/Stream/Writer.pir
  154. +2 −2 runtime/parrot/library/Test/Builder/Output.pir
  155. +3 −3 runtime/parrot/library/distutils.pir
  156. +7 −7 runtime/parrot/library/osutils.pir
  157. +1 −1  runtime/parrot/library/parrotlib.pir
  158. +4 −3 src/alarm.c
  159. +0 −3  src/call/args.c
  160. +36 −1 src/call/context.c
  161. +0 −32 src/call/context_accessors.c
  162. +5 −4 src/call/ops.c
  163. +35 −33 src/debug.c
  164. +7 −7 src/dynext.c
  165. +21 −7 src/dynoplibs/Rules.in
  166. +30 −10 src/dynpmc/Rules.in
  167. +3 −3 src/dynpmc/gziphandle.pmc
  168. +30 −1 src/dynpmc/os.pmc
  169. +21 −5 src/dynpmc/rational.pmc
  170. +2 −1  src/dynpmc/subproxy.pmc
  171. +14 −15 src/embed/api.c
  172. +5 −12 src/embed/strings.c
  173. +0 −1  src/events.c
  174. +41 −8 src/exceptions.c
  175. +47 −20 src/extend.c
  176. +2 −2 src/gc/alloc_resources.c
  177. +2 −1  src/gc/fixed_allocator.h
  178. +14 −14 src/gc/gc_gms.c
  179. +1 −1  src/gc/gc_ms.c
  180. +6 −6 src/gc/gc_ms2.c
  181. +2 −8 src/gc/mark_sweep.c
  182. +2 −1  src/gc/string_gc.c
  183. +2 −0  src/gc/system.c
  184. +7 −3 src/global_setup.c
  185. +39 −7 src/hash.c
  186. +1,269 −0 src/interp/api.c
  187. +19 −15 src/interp/inter_cb.c
  188. +0 −552 src/interp/inter_create.c
  189. +0 −771 src/interp/inter_misc.c
  190. +34 −24 src/library.c
  191. +2 −2 src/namespace.c
  192. +8 −0 src/nci/libffi.c
  193. +14 −36 src/ops/core.ops
  194. +1,877 −1,756 src/ops/core_ops.c
  195. +80 −2 src/ops/experimental.ops
  196. +2 −2 src/ops/io.ops
  197. +2 −15 src/ops/object.ops
  198. +16 −5 src/ops/pmc.ops
  199. +2 −2 src/ops/set.ops
  200. +1 −10 src/ops/string.ops
  201. +5 −4 src/ops/sys.ops
  202. +29 −20 src/packfile/api.c
  203. +0 −571 src/packfile/byteorder.h
  204. +4 −4 src/packfile/output.c
  205. +669 −13 src/packfile/pf_items.c
  206. +1 −100 src/packfile/pf_private.h
  207. +9 −5 src/packfile/segments.c
  208. +124 −9 src/platform/generic/dl.c
  209. +1 −1  src/platform/generic/file.c
  210. +2 −1  src/platform/generic/socket.c
  211. +2 −2 src/platform/win32/dl.c
  212. +297 −0 src/pmc.c
  213. +1 −1  src/pmc/arrayiterator.pmc
  214. +6 −10 src/pmc/callcontext.pmc
  215. +5 −0 src/pmc/class.pmc
  216. +1 −0  src/pmc/continuation.pmc
  217. +1 −6 src/pmc/coroutine.pmc
  218. +0 −277 src/pmc/default.pmc
  219. +1 −16 src/pmc/filehandle.pmc
  220. +1 −1  src/pmc/fixedbooleanarray.pmc
  221. +1 −1  src/pmc/fixedstringarray.pmc
  222. +16 −1 src/pmc/hashiterator.pmc
  223. +1 −1  src/pmc/imageiofreeze.pmc
  224. +1 −1  src/pmc/imccompiler.pmc
  225. +1 −1  src/pmc/iterator.pmc
  226. +36 −1 src/pmc/lexpad.pmc
  227. +5 −2 src/pmc/managedstruct.pmc
  228. +1 −1  src/pmc/namespace.pmc
  229. +1 −1  src/pmc/nativepccmethod.pmc
  230. +1 −1  src/pmc/nci.pmc
  231. +9 −2 src/pmc/null.pmc
  232. +7 −2 src/pmc/orderedhashiterator.pmc
  233. +4 −6 src/pmc/parrotinterpreter.pmc
  234. +1 −1  src/pmc/parrotlibrary.pmc
  235. +6 −10 src/pmc/pmclist.pmc
  236. +4 −4 src/pmc/resizablebooleanarray.pmc
  237. +2 −2 src/pmc/resizablefloatarray.pmc
  238. +3 −3 src/pmc/resizableintegerarray.pmc
  239. +6 −6 src/pmc/resizablepmcarray.pmc
  240. +80 −22 src/pmc/stringbuilder.pmc
  241. +1 −1  src/pmc/stringiterator.pmc
  242. +5 −3 src/pmc/structview.pmc
  243. +0 −9 src/pmc/sub.pmc
  244. +0 −2  src/pmc/task.pmc
  245. +1 −1  src/pmc/undef.pmc
  246. +12 −14 src/pmc/unmanagedstruct.pmc
  247. +7 −6 src/pointer_array.c
  248. +0 −4 src/runcore/cores.c
  249. +0 −4 src/runcore/profiling.c
  250. +11 −14 src/runcore/subprof.c
  251. +4 −4 src/scheduler.c
  252. +2 −2 src/spf_render.c
  253. +33 −32 src/string/api.c
  254. +33 −6 src/string/encoding/shared.c
  255. +3 −1 src/string/encoding/utf8.c
  256. +0 −20 src/sub.c
  257. +0 −6 src/vtable.tbl
  258. +0 −1  t/benchmark/benchmarks.t
  259. +1 −1  t/codingstd/c_arg_assert.t
  260. +56 −0 t/codingstd/case_sensitive_files.t
  261. +1 −1  t/codingstd/cuddled_else.t
  262. +2 −1  t/codingstd/filenames.t
  263. +1 −1  t/compilers/data_json/to_parrot.t
  264. +1 −1  t/compilers/imcc/syn/clash.t
  265. +49 −1 t/compilers/imcc/syn/const.t
  266. +1 −1  t/compilers/imcc/syn/op.t
  267. +15 −1 t/compilers/imcc/syn/pcc.t
  268. +1 −1  t/compilers/imcc/syn/regressions.t
  269. +2 −2 t/compilers/opsc/03-past.t
  270. +2 −2 t/compilers/opsc/08-emitter.t
  271. +2 −2 t/compilers/pct/past.t
  272. +1 −1  t/compilers/tge/grammar.t
  273. +31 −28 t/configure/008-file_based_configuration.t
  274. +1 −1  t/dynoplibs/io.t
  275. +1 −1  t/dynpmc/foo-02.t
  276. +1 −1  t/dynpmc/gziphandle.t
  277. +2 −2 t/dynpmc/os.t
  278. +16 −18 t/fullharness
  279. +1 −1  t/harness.pir
  280. +1 −1  t/library/p6object.t
  281. BIN  t/native_pbc/annotations.pbc
  282. +1 −1  t/native_pbc/header.t
  283. BIN  t/native_pbc/integer.pbc
  284. +2 −2 t/native_pbc/integer.t
  285. BIN  t/native_pbc/number.pbc
  286. +3 −3 t/native_pbc/number.t
  287. BIN  t/native_pbc/number_4.pbc
  288. BIN  t/native_pbc/number_5.pbc
  289. BIN  t/native_pbc/string.pbc
  290. +2 −2 t/native_pbc/string.t
  291. BIN  t/native_pbc/string_4.pbc
  292. BIN  t/native_pbc/string_5.pbc
  293. +1 −1  t/oo/metamodel.t
  294. +25 −32 t/oo/objects.t
  295. +2 −2 t/op/arithmetics.t
  296. +1 −1  t/op/calling.t
  297. +1 −1  t/op/comp.t
  298. +2 −2 t/op/gc.t
  299. +1 −1  t/op/inf_nan.t
  300. +1 −1  t/op/lexicals.t
Sorry, we could not display the entire diff because too many files (348) changed.
View
6 .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
@@ -435,6 +439,8 @@ cachegrind.out.*
/t/src/*.gcov
/t/src/*.gcdada
/t/src/embed/*.c
+/t/src/embed*.o
+/t/src/extend*.o
/t/stress/*.out
/t/stress/*.pasm
/t/stress/*.pbc
View
45 .travis.yml
@@ -0,0 +1,45 @@
+language: "perl"
+perl:
+# - "5.10"
+ - "5.14"
+install: "echo"
+before_script:
+ - sudo apt-get install libffi-dev libicu-dev libgmp3-dev clang llvm-dev zlib1g-dev gcc-multilib
+# No, we are not going to run the tests for all these dependencies on every commit
+ - cpanm -n LWP::UserAgent TAP::Harness::Archive TAP::Harness::ReportByDescription
+# This stuff used to be required, but was rolled into the Travis CI perl support.
+# - curl -L http://cpanmin.us | sudo perl - --self-upgrade
+# - export CI_USER=$USER
+# - mkdir ~/perl5 && perl -Mlocal::lib >> /tmp/local_lib_junk.sh && source /tmp/local_lib_junk.sh
+# - sudo chown -R $CI_USER ~/.cpanm
+# - sudo chown -R $CI_USER ~/perl5
+
+# Don't run Configure.pl tests, for now
+#script: "perl Configure.pl --test=build $PARROT_CONFIG_ARGS $PARROT_OPTIMIZE --cc=\"$CC\" --link=\"$CC\" --ld=\"$CC\" --ccflags='-g' ; make $PARROT_TEST"
+
+script: "perl Configure.pl $PARROT_CONFIG_ARGS $PARROT_OPTIMIZE --cc=\"$CC\" --link=\"$CC\" --ld=\"$CC\" --ccflags='-g' ; make $PARROT_TEST"
+
+branches:
+ only:
+ - master
+notifications:
+ recipients:
+ - parrot-ci@lists.parrot.org
+ email:
+ on_success: change
+ on_failure: always
+ irc:
+ channels:
+ - "irc.parrot.org#parrot"
+ on_success: change
+ on_failure: change
+env:
+ - PARROT_CONFIG_ARGS="" PARROT_OPTIMIZE="--optimize" PARROT_TEST="smoke" CC="clang"
+ - PARROT_CONFIG_ARGS="" PARROT_OPTIMIZE="" PARROT_TEST="smoke" CC="clang"
+ - PARROT_CONFIG_ARGS="--without-gettext --without-gmp --without-libffi --without-extra-nci-thunks --without-opengl --without-readline --without-pcre --without-zlib --without-threads --without-icu" PARROT_OPTIMIZE="" PARROT_TEST="smoke" CC="clang"
+ - PARROT_CONFIG_ARGS="" PARROT_OPTIMIZE="--optimize" PARROT_TEST="smoke" CC="gcc"
+ - PARROT_CONFIG_ARGS="" PARROT_OPTIMIZE="" PARROT_TEST="smoke" CC="gcc"
+ - PARROT_CONFIG_ARGS="--without-gettext --without-gmp --without-libffi --without-extra-nci-thunks --without-opengl --without-readline --without-pcre --without-zlib --without-threads --without-icu" PARROT_OPTIMIZE="" PARROT_TEST="smoke" CC="gcc"
+ - PARROT_CONFIG_ARGS="" PARROT_OPTIMIZE="--optimize" PARROT_TEST="smoke" CC="g++"
+ - PARROT_CONFIG_ARGS="" PARROT_OPTIMIZE="" PARROT_TEST="smoke" CC="g++"
+ - PARROT_CONFIG_ARGS="--without-gettext --without-gmp --without-libffi --without-extra-nci-thunks --without-opengl --without-readline --without-pcre --without-zlib --without-threads --without-icu" PARROT_OPTIMIZE="" PARROT_TEST="smoke" CC="g++"
View
15 CREDITS
@@ -76,6 +76,13 @@ D: Architect (0.4.6 - 2.8.0) & Lead Developer
E: allison@parrot.org
U: allison
+N: Alvis Yardley
+D: Documentation Shepherd (3.9.0 - Present)
+D: Release manger for 4.1.0
+E: ac.yardley@gmail.com
+U: alvis
+S: Ft. Worth, Texas
+
N: Amir Karger
U: amirkarger
D: editor bugfixes
@@ -107,7 +114,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
@@ -521,7 +528,7 @@ D: lot of general hints and patches to improve portability
N: Jason Gloudon
-N: Jay Emmerson
+N: Jay Emerson
E: john.emerson@yale.edu
U: jay
@@ -593,8 +600,8 @@ S: Ohio, USA
N: Jonathan "Duke" Leto
E: jonathan@leto.net
-W: http://leto.net
-D: Release manager for 1.7.0
+W: http://dukeleto.pl
+D: Release manager for 1.7.0, 3.9.0,4.2.0 GCI/GSoC Org Admin/Mentor
U: dukeleto
A: leto
A: Duke Leto
View
98 ChangeLog
@@ -1,3 +1,101 @@
+2012-04-17 release 4.3.0
+ - Core
+ + Winxed snapshot updated to 1.7.0
+ + Add type introspection to lexical variables.
+ + New 'tools/release/parrot_github_release.pl' script to automate
+ updates to the 'parrot.github.com' and 'parrot-docsx' repositories.
+ + Numerous casting and consting fixes thanks to GCC 4.8 .
+ - Documentation
+ + Updated 'docs/projects/release_manager_guide.pod'
+ + Updated 'docs/projects/release_parrot_github_guide.pod'
+ + Improved function documentation.
+ - Tests
+ - Community
+ - Platforms
+ + Fixed alignment issues on ia64, sparc and mipsel.
+ + Fixed a platform-specific issue with dlclose().
+
+2012-03-20 release 4.2.0
+ - API Changes
+ + The signature of getprop was changed from (PMC,String,PMC) to
+ (PMC, PMC,String) for consistency
+ - Core
+ + Parrot Calling Conventions (pcc) now reuses Continuation PMCs
+ internally, which reduces GC work by 25% and improves
+ the fib.pir benchmark by 6%
+ + Winxed snapshot updated to 1.6.devel 44a04cfa7b
+ + Improved the detection of Clang-ish compilers during configuration
+ + Fixed a possible segfault bug when reading packfiles with no
+ constants or main_sub
+ + By default, Parrot has now elevated these GCC warnings to errors
+ during compile time:
+ implicit-function-declaration, undef, missing-braces,
+ nested externs, old-style-definition, strict-prototypes,
+ + The OS Dynamic PMC now has separate functions to unlink a file
+ and remove an empty directory (rmdir)
+ + Fix building on Cygwin due to an improperly named DLL file
+ + Various small bug fixes pointed out by static and dynamic analysis
+ tools
+ - Branches
+ + Work on M0 continues now in the m0 branch, which contains both
+ implementations (currently C and Perl) and specification.
+ + Good progress has been made on the threads branch which builds
+ on the green_threads branch. This gets Parrot much closer to
+ being able to utilize multiple CPU cores seemlessly. More details
+ at http://niner.name/Hybrid_Threads_for_the_Parrot_VM.pdf
+ - Documentation
+ + New release manager documentation for parrot.github.com :
+ http://git.io/parrot-github-guide
+ - Community
+ + Parrot was accepted to Google Summer of Code 2012!
+ Ideas Page: http://git.io/parrot-gsoc-2012
+
+2012-02-21 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
+ + New experimental PCC-related ops added to core.
+ - Documentation
+ + Revised 'docs/project/release_manager_guide.pod'
+ - Tests
+ + Parrot now uses Travis CI http://travis-ci.org
+ + Parrot Continuous Integration (CI) with Travis CI means
+ every commit of Parrot is now compiled and tested on gcc,
+ g++ and clang with various Configure.pl options.
+ + CI Notifications are sent to parrot-dev, the #parrot
+ IRC channel and Smolder
+ + Cardinal and Rakudo spec tests also on Travis CI
+
+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
+ + smarter recursion tracking across threads
+ + new "pop_upto_eh" op for finer-grained exception handling
+ + subroutine-level profiling runcore cleanups
+ + improved window support
+ - Languages
+ + new math builtins in winxed (abs, sinh, cosh and tanh)
+ + better inline support in winxed
+ + squaak improvements (sub as expression, new read() builtin)
+ - Documentation
+ + many new man pages thanks to gci students
+ - Tests
+ + updated example code for FileHandle and Iterator
+ + coding standards fixes
+
2011-11-15 release 3.10.0
- Core
+ The mark VTABLE was added to the Select PMC
View
15 Configure.pl
@@ -458,6 +458,13 @@ =head1 CONFIGURATION-FILE INTERFACE
... you would now place the assignments to C<CC> and C<CX> in the
I<=variables> section of the configuration file (as above).
+In addition, should you wish to use an option whose value contains whitespace
+and would, if presented on the command-line, require quoting, you may
+assign that string to a variable and then use the variable in the C<general>
+section below.
+
+ LONGLONG=long long
+
=back
=item * general
@@ -485,6 +492,14 @@ =head1 CONFIGURATION-FILE INTERFACE
Note that when the value is a variable defined in the I<=variables> section,
it must be preceded by a C<$> sign.
+ intval=$LONGLONG
+
+Alternatively, if assignment of a value to an option on the command-line would
+require quoting due to the presence of whitespace in the value, you may assign
+it to a value in the I<=general> section by double-quoting the value.
+
+ intval="long long"
+
=item *
You I<may> list options here which are I<conceptually> limited to a single
View
30 MANIFEST
@@ -7,6 +7,7 @@
# See docs/submissions.pod and the documentation in
# tools/dev/mk_manifest_and_skip.pl.
.gitignore []
+.travis.yml []
CREDITS [main]doc
ChangeLog []
Configure.pl []
@@ -250,6 +251,16 @@ config/inter/progs.pm []
config/inter/shlibs.pm []
config/inter/types.pm []
config/inter/yacc.pm []
+docs/binaries/ops2c.pod [doc]
+docs/binaries/parrot-nqp.pod [doc]
+docs/binaries/parrot-prove.pod [doc]
+docs/binaries/parrot.pod [doc]
+docs/binaries/parrot_config.pod [doc]
+docs/binaries/parrot_nci_thunk_gen.pod [doc]
+docs/binaries/parrotbug.pod [doc]
+docs/binaries/pbc_to_exe.pod [doc]
+docs/binaries/plumage.pod [doc]
+docs/binaries/winxed.pod [doc]
docs/book/draft/README []
docs/book/draft/appa_glossary.pod []
docs/book/draft/appb_patch_submission.pod []
@@ -382,6 +393,7 @@ docs/project/hacking_tips.pod [doc]
docs/project/merge_review_guidelines.pod [doc]
docs/project/metacommitter_guide.pod [doc]
docs/project/release_manager_guide.pod [doc]
+docs/project/release_parrot_github_guide.pod [doc]
docs/project/roles_responsibilities.pod [doc]
docs/project/support_policy.pod [doc]
docs/project/ticket_triaging.pod [doc]
@@ -464,10 +476,6 @@ examples/benchmarks/oo3.pir [examples]
examples/benchmarks/oo3.pl [examples]
examples/benchmarks/oo3.py [examples]
examples/benchmarks/oo3.rb [examples]
-examples/benchmarks/oo4.pasm [examples]
-examples/benchmarks/oo4.pl [examples]
-examples/benchmarks/oo4.py [examples]
-examples/benchmarks/oo4.rb [examples]
examples/benchmarks/oo5.pir [examples]
examples/benchmarks/oo5.pl [examples]
examples/benchmarks/oo5.py [examples]
@@ -514,6 +522,7 @@ examples/c/test_main.c [examples]
examples/compilers/Makefile [examples]
examples/compilers/japhc.c [examples]
examples/config/file/configcompiler [examples]
+examples/config/file/configverbose [examples]
examples/config/file/configwithfatalstep [examples]
examples/embed/Makefile [examples]
examples/embed/Makefile.msvc [examples]
@@ -1226,9 +1235,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 []
@@ -1268,7 +1276,6 @@ src/ops/string.ops []
src/ops/sys.ops []
src/ops/var.ops []
src/packfile/api.c []
-src/packfile/byteorder.h []
src/packfile/object_serialization.c []
src/packfile/output.c []
src/packfile/pf_items.c []
@@ -1457,6 +1464,7 @@ t/codingstd/c_parens.t [test]
t/codingstd/c_returns.t [test]
t/codingstd/c_struct.t [test]
t/codingstd/c_todo.t [test]
+t/codingstd/case_sensitive_files.t [test]
t/codingstd/check_isxxx.t [test]
t/codingstd/check_toxxx.t [test]
t/codingstd/copyright.t [test]
@@ -1618,7 +1626,6 @@ t/configure/testlib/init/lambda.pm [test]
t/configure/testlib/init/mu.pm [test]
t/configure/testlib/init/zeta.pm [test]
t/configure/testlib/inter/theta.pm [test]
-t/configure/testlib/verbosefoobar [test]
t/distro/manifest.t [test]
t/distro/manifest_generated.t [test]
t/dynoplibs/bit.t [test]
@@ -1718,6 +1725,7 @@ t/manifest/03-regenerate_skip.t [test]
t/manifest/04-alt_file.t [test]
t/manifest/05-alt_skip.t [test]
t/manifest/README []doc
+t/native_pbc/annotations.pbc [test]
t/native_pbc/header.t [test]
t/native_pbc/integer.pbc [test]
t/native_pbc/integer.t [test]
@@ -1743,6 +1751,7 @@ t/native_pbc/string_1.pbc [test]
t/native_pbc/string_2.pbc [test]
t/native_pbc/string_3.pbc [test]
t/native_pbc/string_4.pbc [test]
+t/native_pbc/string_5.pbc [test]
t/native_pbc/string_6.pbc [test]
t/native_pbc/string_7.pbc [test]
t/native_pbc/testdata/README []doc
@@ -2005,7 +2014,6 @@ t/steps/auto/pod2man-01.t [test]
t/steps/auto/readline-01.t [test]
t/steps/auto/readline-02.t [test]
t/steps/auto/revision-01.t [test]
-t/steps/auto/sha1-01.t [test]
t/steps/auto/signal-01.t [test]
t/steps/auto/sizes-01.t [test]
t/steps/auto/snprintf-01.t [test]
@@ -2151,6 +2159,7 @@ tools/dev/mk_rpm_manifests.pl []
tools/dev/nci_test_gen.pl []
tools/dev/nci_thunk_gen.pir []
tools/dev/ncidef2pir.pl []
+tools/dev/new_changelog_skeleton.pl []
tools/dev/nopaste.pl []
tools/dev/parrot-config.pir []
tools/dev/parrot.supp []
@@ -2179,8 +2188,8 @@ tools/dev/vgp_darwin []
tools/dev/vms-patch []
tools/dev/vtablize.pl []
tools/docs/filename_and_chapter.pl []
-tools/docs/make_html_docs.pl []
tools/docs/mk_chm.pl []
+tools/docs/mk_html_docs.pl []
tools/docs/ops_summary.pl []
tools/install/smoke.pl []
tools/install/smoke_languages.pl []
@@ -2190,6 +2199,7 @@ tools/release/crow.pir []
tools/release/cut.pl []
tools/release/gen_release_info.pl []
tools/release/inc_ver.pir []
+tools/release/parrot_github_release.pl []
tools/release/release.json []
tools/release/releasecheck.pl []
tools/release/sha256sum.pl []
View
14 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$
@@ -954,8 +964,12 @@
^/t/src/.*\.lib/
^/t/src/.*_.*\.c$
^/t/src/.*_.*\.c/
+^/t/src/embed.*\.o$
+^/t/src/embed.*\.o/
^/t/src/embed/.*\.c$
^/t/src/embed/.*\.c/
+^/t/src/extend.*\.o$
+^/t/src/extend.*\.o/
^/t/stress/.*\.out$
^/t/stress/.*\.out/
^/t/stress/.*\.pasm$
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.10.0.dylib [main]lib
+blib/lib/libparrot.4.3.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.10.0 [main]lib
+blib/lib/libparrot.so.4.3.0 [main]lib
compilers/data_json/data_json.pbc [data_json]
config/gen/call_list/opengl.in []
+cygparrot-4.3.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
14 README
@@ -1,7 +1,7 @@
-This is Parrot, version 3.10.0
+This is Parrot, version 4.3.0
------------------------------
-Parrot is Copyright (C) 2001-2011, Parrot Foundation.
+Parrot is Copyright (C) 2001-2012, Parrot Foundation.
LICENSE INFORMATION
@@ -37,10 +37,14 @@ I. Install Git.
Linux:
The method depends on your distribution. To install you should execute (as root or sudo <cmd>):
-On Ubuntu/Debian (apt-based):
+On Ubuntu/Debian (old versions, apt-based):
apt-get install git-core
+On Ubuntu/Debian (new versions, apt-based):
+
+ apt-get install git
+
On Red Hat, Fedora (rpm-based):
yum install git
@@ -148,7 +152,7 @@ CHANGES
-------
For documentation on the user-visible changes between this version and
-previous versions, please see NEWS.
+previous versions, please see ChangeLog.
MAILING LISTS
-------------
@@ -170,8 +174,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
7 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
@@ -16,9 +16,9 @@ Architect Christoph Otto
Product Manager Andrew Whitworth
-Project Manager
+Project Manager ENOBODY
-Community Manager Jonathan "Duke" Leto
+Community Ambassador Jonathan "Duke" Leto
Release Manager Bob Rogers
Patrick Michaud
@@ -37,6 +37,7 @@ Release Manager Bob Rogers
Tyler Curtis
James E Keenan
Kevin Polulak
+ Alvis Yardley
Metacommitter Allison Randal
Jerry Gay
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.10.0
+4.3.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
6 compilers/imcc/cfg.c
@@ -447,11 +447,11 @@ build_cfg(ARGMOD(imc_info_t *imcc), ARGMOD(IMC_Unit *unit))
/* Decouple unreachable blocks (not the first block, with no predecessors)
* from the CFG */
do {
- unsigned int i;
+ unsigned int j;
changes = 0;
- for (i = 1; i < unit->n_basic_blocks; i++) {
- Basic_block * const bb = unit->bb_list[i];
+ for (j = 1; j < unit->n_basic_blocks; j++) {
+ Basic_block * const bb = unit->bb_list[j];
if (!bb->pred_list) {
/* Remove all successor edges of block bb */
View
4 compilers/imcc/imcc.l
@@ -788,8 +788,10 @@ destroy_frame(struct macro_frame_t *frame, void *yyscanner)
if (frame->heredoc_rest) {
mem_sys_free(frame->heredoc_rest);
frame->heredoc_rest = NULL;
- } else
+ }
+ else {
ret = frame->s.line;
+ }
mem_sys_free(frame);
View
2  compilers/imcc/imcc.y
@@ -1019,7 +1019,7 @@ do_loadlib(ARGMOD(imc_info_t *imcc), ARGIN(const char *lib))
/* TODO: This is very ugly and heavily nested. Can we avoid this? */
if (!STRING_equal(imcc->interp,
VTABLE_get_string(imcc->interp,
- VTABLE_getprop(imcc->interp, lib_pmc,
+ Parrot_pmc_getprop(imcc->interp, lib_pmc,
Parrot_str_new_constant(imcc->interp, "_type"))),
Parrot_str_new_constant(imcc->interp, "Ops")))
imcc_pbc_add_libdep(imcc, s);
View
1,695 compilers/imcc/imcparser.c
@@ -9,11 +9,13 @@
*/
/* HEADERIZER HFILE: none */
/* HEADERIZER STOP */
-/* A Bison parser, made by GNU Bison 2.5. */
-/* Bison implementation for Yacc-like parsers in C
+/* A Bison parser, made by GNU Bison 2.4.1. */
+
+/* Skeleton implementation for Bison's Yacc-like parsers in C
- Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+ Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -55,7 +57,7 @@
#define YYBISON 1
/* Bison version. */
-#define YYBISON_VERSION "2.5"
+#define YYBISON_VERSION "2.4.1"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@@ -76,7 +78,7 @@
/* Copy the first part of user declarations. */
-/* Line 268 of yacc.c */
+/* Line 189 of yacc.c */
#line 1 "compilers/imcc/imcc.y"
/*
@@ -1099,7 +1101,7 @@ do_loadlib(ARGMOD(imc_info_t *imcc), ARGIN(const char *lib))
/* TODO: This is very ugly and heavily nested. Can we avoid this? */
if (!STRING_equal(imcc->interp,
VTABLE_get_string(imcc->interp,
- VTABLE_getprop(imcc->interp, lib_pmc,
+ Parrot_pmc_getprop(imcc->interp, lib_pmc,
Parrot_str_new_constant(imcc->interp, "_type"))),
Parrot_str_new_constant(imcc->interp, "Ops")))
imcc_pbc_add_libdep(imcc, s);
@@ -1109,8 +1111,8 @@ do_loadlib(ARGMOD(imc_info_t *imcc), ARGIN(const char *lib))
-/* Line 268 of yacc.c */
-#line 1097 "compilers/imcc/imcparser.c"
+/* Line 189 of yacc.c */
+#line 1105 "compilers/imcc/imcparser.c"
/* Enabling traces. */
#ifndef YYDEBUG
@@ -1378,8 +1380,8 @@ do_loadlib(ARGMOD(imc_info_t *imcc), ARGIN(const char *lib))
typedef union YYSTYPE
{
-/* Line 293 of yacc.c */
-#line 1026 "compilers/imcc/imcc.y"
+/* Line 214 of yacc.c */
+#line 1032 "compilers/imcc/imcc.y"
IdList * idlist;
int t;
@@ -1389,8 +1391,8 @@ typedef union YYSTYPE
-/* Line 293 of yacc.c */
-#line 1377 "compilers/imcc/imcparser.c"
+/* Line 214 of yacc.c */
+#line 1385 "compilers/imcc/imcparser.c"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -1401,8 +1403,8 @@ typedef union YYSTYPE
/* Copy the second part of user declarations. */
-/* Line 343 of yacc.c */
-#line 1389 "compilers/imcc/imcparser.c"
+/* Line 264 of yacc.c */
+#line 1397 "compilers/imcc/imcparser.c"
#ifdef short
# undef short
@@ -1452,7 +1454,7 @@ typedef short int yytype_int16;
#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
#ifndef YY_
-# if defined YYENABLE_NLS && YYENABLE_NLS
+# if YYENABLE_NLS
# if ENABLE_NLS
# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
# define YY_(msgid) dgettext ("bison-runtime", msgid)
@@ -1505,11 +1507,11 @@ YYID (yyi)
# define alloca _alloca
# else
# define YYSTACK_ALLOC alloca
-# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
+# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# ifndef EXIT_SUCCESS
-# define EXIT_SUCCESS 0
+# ifndef _STDLIB_H
+# define _STDLIB_H 1
# endif
# endif
# endif
@@ -1532,24 +1534,24 @@ YYID (yyi)
# ifndef YYSTACK_ALLOC_MAXIMUM
# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
# endif
-# if (defined __cplusplus && ! defined EXIT_SUCCESS \
+# if (defined __cplusplus && ! defined _STDLIB_H \
&& ! ((defined YYMALLOC || defined malloc) \
&& (defined YYFREE || defined free)))
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# ifndef EXIT_SUCCESS
-# define EXIT_SUCCESS 0
+# ifndef _STDLIB_H
+# define _STDLIB_H 1
# endif
# endif
# ifndef YYMALLOC
# define YYMALLOC malloc
-# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
+# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
# endif
# endif
# ifndef YYFREE
# define YYFREE free
-# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
+# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
void free (void *); /* INFRINGES ON USER NAME SPACE */
# endif
@@ -1578,7 +1580,23 @@ union yyalloc
((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
+ YYSTACK_GAP_MAXIMUM)
-# define YYCOPY_NEEDED 1
+/* Copy COUNT objects from FROM to TO. The source and destination do
+ not overlap. */
+# ifndef YYCOPY
+# if defined __GNUC__ && 1 < __GNUC__
+# define YYCOPY(To, From, Count) \
+ __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
+# else
+# define YYCOPY(To, From, Count) \
+ do \
+ { \
+ YYSIZE_T yyi; \
+ for (yyi = 0; yyi < (Count); yyi++) \
+ (To)[yyi] = (From)[yyi]; \
+ } \
+ while (YYID (0))
+# endif
+# endif
/* Relocate STACK from its old location to the new one. The
local variables YYSIZE and YYSTACKSIZE give the old and new number of
@@ -1598,26 +1616,6 @@ union yyalloc
#endif
-#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
-/* Copy COUNT objects from FROM to TO. The source and destination do
- not overlap. */
-# ifndef YYCOPY
-# if defined __GNUC__ && 1 < __GNUC__
-# define YYCOPY(To, From, Count) \
- __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
-# else
-# define YYCOPY(To, From, Count) \
- do \
- { \
- YYSIZE_T yyi; \
- for (yyi = 0; yyi < (Count); yyi++) \
- (To)[yyi] = (From)[yyi]; \
- } \
- while (YYID (0))
-# endif
-# endif
-#endif /* !YYCOPY_NEEDED */
-
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 31
/* YYLAST -- Last index in YYTABLE. */
@@ -1825,40 +1823,40 @@ static const yytype_int16 yyrhs[] =
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 1117, 1117, 1121, 1122, 1126, 1127, 1128, 1134, 1140,
- 1141, 1142, 1143, 1147, 1148, 1157, 1163, 1171, 1183, 1196,
- 1196, 1205, 1205, 1214, 1215, 1219, 1220, 1224, 1225, 1226,
- 1227, 1228, 1229, 1230, 1233, 1233, 1241, 1240, 1251, 1255,
- 1268, 1272, 1276, 1276, 1288, 1290, 1294, 1309, 1310, 1314,
- 1314, 1324, 1325, 1334, 1338, 1342, 1333, 1354, 1356, 1353,
- 1383, 1408, 1413, 1416, 1421, 1429, 1430, 1431, 1432, 1433,
- 1444, 1455, 1460, 1464, 1471, 1482, 1488, 1497, 1503, 1512,
- 1518, 1527, 1533, 1542, 1550, 1555, 1565, 1567, 1572, 1571,
- 1597, 1598, 1602, 1603, 1607, 1608, 1612, 1613, 1617, 1625,
- 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642,
- 1643, 1644, 1645, 1649, 1654, 1661, 1662, 1675, 1680, 1681,
- 1689, 1690, 1690, 1702, 1703, 1707, 1708, 1709, 1710, 1711,
- 1712, 1713, 1718, 1718, 1721, 1729, 1729, 1735, 1736, 1741,
- 1749, 1750, 1755, 1763, 1767, 1772, 1771, 1784, 1785, 1789,
- 1790, 1800, 1805, 1815, 1824, 1825, 1837, 1841, 1842, 1844,
- 1845, 1846, 1847, 1848, 1852, 1853, 1857, 1858, 1862, 1874,
- 1875, 1886, 1893, 1902, 1911, 1912, 1913, 1913, 1926, 1936,
- 1942, 1942, 1949, 1950, 1950, 1956, 1962, 1966, 1972, 1973,
- 1974, 1975, 1976, 1977, 1981, 1982, 1983, 1984, 1988, 1990,
- 1992, 1994, 1996, 1999, 2006, 2005, 2014, 2015, 2016, 2017,
- 2025, 2026, 2027, 2031, 2032, 2033, 2034, 2035, 2036, 2037,
- 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047,
- 2048, 2049, 2050, 2051, 2052, 2053, 2059, 2058, 2070, 2072,
- 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091,
- 2092, 2093, 2098, 2107, 2108, 2109, 2110, 2116, 2130, 2136,
- 2142, 2152, 2151, 2160, 2161, 2171, 2181, 2187, 2192, 2202,
- 2206, 2207, 2211, 2212, 2213, 2215, 2221, 2230, 2234, 2244,
- 2250, 2260, 2265, 2269, 2270, 2274, 2278, 2282, 2289, 2293,
- 2297, 2304, 2305, 2309, 2310, 2311, 2312, 2313, 2314, 2318,
- 2319, 2323, 2324, 2328, 2329, 2333, 2334, 2341, 2348, 2349,
- 2350, 2354, 2355, 2359, 2360, 2364, 2365, 2369, 2370, 2374,
- 2374, 2384, 2384, 2396, 2397, 2405, 2412, 2413, 2414, 2415,
- 2416, 2420, 2421, 2425, 2426, 2427
+ 0, 1123, 1123, 1127, 1128, 1132, 1133, 1134, 1140, 1146,
+ 1147, 1148, 1149, 1153, 1154, 1163, 1169, 1177, 1189, 1202,
+ 1202, 1211, 1211, 1220, 1221, 1225, 1226, 1230, 1231, 1232,
+ 1233, 1234, 1235, 1236, 1239, 1239, 1247, 1246, 1257, 1261,
+ 1274, 1278, 1282, 1282, 1294, 1296, 1300, 1315, 1316, 1320,
+ 1320, 1330, 1331, 1340, 1344, 1348, 1339, 1360, 1362, 1359,
+ 1389, 1414, 1419, 1422, 1427, 1435, 1436, 1437, 1438, 1439,
+ 1450, 1461, 1466, 1470, 1477, 1488, 1494, 1503, 1509, 1518,
+ 1524, 1533, 1539, 1548, 1556, 1561, 1571, 1573, 1578, 1577,
+ 1603, 1604, 1608, 1609, 1613, 1614, 1618, 1619, 1623, 1631,
+ 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648,
+ 1649, 1650, 1651, 1655, 1660, 1667, 1668, 1681, 1686, 1687,
+ 1695, 1696, 1696, 1708, 1709, 1713, 1714, 1715, 1716, 1717,
+ 1718, 1719, 1724, 1724, 1727, 1735, 1735, 1741, 1742, 1747,
+ 1755, 1756, 1761, 1769, 1773, 1778, 1777, 1790, 1791, 1795,
+ 1796, 1806, 1811, 1821, 1830, 1831, 1843, 1847, 1848, 1850,
+ 1851, 1852, 1853, 1854, 1858, 1859, 1863, 1864, 1868, 1880,
+ 1881, 1892, 1899, 1908, 1917, 1918, 1919, 1919, 1932, 1942,
+ 1948, 1948, 1955, 1956, 1956, 1962, 1968, 1972, 1978, 1979,
+ 1980, 1981, 1982, 1983, 1987, 1988, 1989, 1990, 1994, 1996,
+ 1998, 2000, 2002, 2005, 2012, 2011, 2020, 2021, 2022, 2023,
+ 2031, 2032, 2033, 2037, 2038, 2039, 2040, 2041, 2042, 2043,
+ 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053,
+ 2054, 2055, 2056, 2057, 2058, 2059, 2065, 2064, 2076, 2078,
+ 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097,
+ 2098, 2099, 2104, 2113, 2114, 2115, 2116, 2122, 2136, 2142,
+ 2148, 2158, 2157, 2166, 2167, 2177, 2187, 2193, 2198, 2208,
+ 2212, 2213, 2217, 2218, 2219, 2221, 2227, 2236, 2240, 2250,
+ 2256, 2266, 2271, 2275, 2276, 2280, 2284, 2288, 2295, 2299,
+ 2303, 2310, 2311, 2315, 2316, 2317, 2318, 2319, 2320, 2324,
+ 2325, 2329, 2330, 2334, 2335, 2339, 2340, 2347, 2354, 2355,
+ 2356, 2360, 2361, 2365, 2366, 2370, 2371, 2375, 2376, 2380,
+ 2380, 2390, 2390, 2402, 2403, 2411, 2418, 2419, 2420, 2421,
+ 2422, 2426, 2427, 2431, 2432, 2433
};
#endif
@@ -2015,8 +2013,8 @@ static const yytype_uint8 yyr2[] =
1, 1, 1, 1, 1, 1
};
-/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
- Performed when YYTABLE doesn't specify something else to do. Zero
+/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
+ STATE-NUM when YYTABLE doesn't specify something else to do. Zero
means the default is an error. */
static const yytype_uint16 yydefact[] =
{
@@ -2175,7 +2173,8 @@ static const yytype_int16 yypgoto[] =
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
positive, shift that token. If negative, reduce the rule which
- number is the opposite. If YYTABLE_NINF, syntax error. */
+ number is the opposite. If zero, do what YYDEFACT says.
+ If YYTABLE_NINF, syntax error. */
#define YYTABLE_NINF -257
static const yytype_int16 yytable[] =
{
@@ -2247,12 +2246,6 @@ static const yytype_int16 yytable[] =
0, 118, 0, 0, 449, 0, 0, 0, 0, 121
};
-#define yypact_value_is_default(yystate) \
- ((yystate) == (-442))
-
-#define yytable_value_is_error(yytable_value) \
- YYID (0)
-
static const yytype_int16 yycheck[] =
{
78, 64, 130, 112, 221, 183, 235, 343, 4, 432,
@@ -2395,18 +2388,9 @@ static const yytype_uint16 yystos[] =
/* Like YYERROR except do call yyerror. This remains here temporarily
to ease the transition to the new meaning of YYERROR, for GCC.
- Once GCC version 2 has supplanted version 1, this can go. However,
- YYFAIL appears to be in use. Nevertheless, it is formally deprecated
- in Bison 2.4.2's NEWS entry, where a plan to phase it out is
- discussed. */
+ Once GCC version 2 has supplanted version 1, this can go. */
#define YYFAIL goto yyerrlab
-#if defined YYFAIL
- /* This is here to suppress warnings from the GCC cpp's
- -Wunused-macros. Normally we don't worry about that warning, but
- some users do, and we want to make it easy for users to remove
- YYFAIL uses, which will produce warnings from Bison 2.5. */
-#endif
#define YYRECOVERING() (!!yyerrstatus)
@@ -2416,6 +2400,7 @@ do \
{ \
yychar = (Token); \
yylval = (Value); \
+ yytoken = YYTRANSLATE (yychar); \
YYPOPSTACK (1); \
goto yybackup; \
} \
@@ -2457,10 +2442,19 @@ while (YYID (0))
#endif
-/* This macro is provided for backward compatibility. */
+/* YY_LOCATION_PRINT -- Print the location on the stream.
+ This macro was not mandated originally: define only if we know
+ we won't break user code: when these are the locations we know. */
#ifndef YY_LOCATION_PRINT
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
+# if YYLTYPE_IS_TRIVIAL
+# define YY_LOCATION_PRINT(File, Loc) \
+ fprintf (File, "%d.%d-%d.%d", \
+ (Loc).first_line, (Loc).first_column, \
+ (Loc).last_line, (Loc).last_column)
+# else
+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
+# endif
#endif
@@ -2660,6 +2654,7 @@ int yydebug;
# define YYMAXDEPTH 10000
#endif
+
#if YYERROR_VERBOSE
@@ -2762,142 +2757,115 @@ yytnamerr (char *yyres, const char *yystr)
}
# endif
-/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
- about the unexpected token YYTOKEN for the state stack whose top is
- YYSSP.
-
- Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
- not large enough to hold the message. In that case, also set
- *YYMSG_ALLOC to the required number of bytes. Return 2 if the
- required number of bytes is too large to store. */
-static int
-yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
- yytype_int16 *yyssp, int yytoken)
+/* Copy into YYRESULT an error message about the unexpected token
+ YYCHAR while in state YYSTATE. Return the number of bytes copied,
+ including the terminating null byte. If YYRESULT is null, do not
+ copy anything; just return the number of bytes that would be
+ copied. As a special case, return 0 if an ordinary "syntax error"
+ message will do. Return YYSIZE_MAXIMUM if overflow occurs during
+ size calculation. */
+static YYSIZE_T
+yysyntax_error (char *yyresult, int yystate, int yychar)
{
- YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
- YYSIZE_T yysize = yysize0;
- YYSIZE_T yysize1;
- enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
- /* Internationalized format string. */
- const char *yyformat = 0;
- /* Arguments of yyformat. */
- char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
- /* Number of reported tokens (one for the "unexpected", one per
- "expected"). */
- int yycount = 0;
-
- /* There are many possibilities here to consider:
- - Assume YYFAIL is not used. It's too flawed to consider. See
- <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
- for details. YYERROR is fine as it does not invoke this
- function.
- - If this state is a consistent state with a default action, then
- the only way this function was invoked is if the default action
- is an error action. In that case, don't check for expected
- tokens because there are none.
- - The only way there can be no lookahead present (in yychar) is if
- this state is a consistent state with a default action. Thus,
- detecting the absence of a lookahead is sufficient to determine
- that there is no unexpected or expected token to report. In that
- case, just report a simple "syntax error".
- - Don't assume there isn't a lookahead just because this state is a
- consistent state with a default action. There might have been a
- previous inconsistent state, consistent state with a non-default
- action, or user semantic action that manipulated yychar.
- - Of course, the expected token list depends on states to have
- correct lookahead information, and it depends on the parser not
- to perform extra reductions after fetching a lookahead from the
- scanner and before detecting a syntax error. Thus, state merging
- (from LALR or IELR) and default reductions corrupt the expected
- token list. However, the list is correct for canonical LR with
- one exception: it will still contain any token that will not be
- accepted due to an error action in a later state.
- */
- if (yytoken != YYEMPTY)
- {
- int yyn = yypact[*yyssp];
- yyarg[yycount++] = yytname[yytoken];
- if (!yypact_value_is_default (yyn))
- {
- /* Start YYX at -YYN if negative to avoid negative indexes in
- YYCHECK. In other words, skip the first -YYN actions for
- this state because they are default actions. */
- int yyxbegin = yyn < 0 ? -yyn : 0;
- /* Stay within bounds of both yycheck and yytname. */
- int yychecklim = YYLAST - yyn + 1;
- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
- int yyx;
-
- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
- && !yytable_value_is_error (yytable[yyx + yyn]))
- {
- if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
- {
- yycount = 1;
- yysize = yysize0;
- break;
- }
- yyarg[yycount++] = yytname[yyx];
- yysize1 = yysize + yytnamerr (0, yytname[yyx]);
- if (! (yysize <= yysize1
- && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
- return 2;
- yysize = yysize1;
- }
- }
- }
+ int yyn = yypact[yystate];
- switch (yycount)
- {
-# define YYCASE_(N, S) \
- case N: \
- yyformat = S; \
- break
- YYCASE_(0, YY_("syntax error"));
- YYCASE_(1, YY_("syntax error, unexpected %s"));
- YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
- YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
- YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
- YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
-# undef YYCASE_
- }
+ if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
+ return 0;
+ else
+ {
+ int yytype = YYTRANSLATE (yychar);
+ YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
+ YYSIZE_T yysize = yysize0;
+ YYSIZE_T yysize1;
+ int yysize_overflow = 0;
+ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
+ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
+ int yyx;
+
+# if 0
+ /* This is so xgettext sees the translatable formats that are
+ constructed on the fly. */
+ YY_("syntax error, unexpected %s");
+ YY_("syntax error, unexpected %s, expecting %s");
+ YY_("syntax error, unexpected %s, expecting %s or %s");
+ YY_("syntax error, unexpected %s, expecting %s or %s or %s");
+ YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
+# endif
+ char *yyfmt;
+ char const *yyf;
+ static char const yyunexpected[] = "syntax error, unexpected %s";
+ static char const yyexpecting[] = ", expecting %s";
+ static char const yyor[] = " or %s";
+ char yyformat[sizeof yyunexpected
+ + sizeof yyexpecting - 1
+ + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
+ * (sizeof yyor - 1))];
+ char const *yyprefix = yyexpecting;
+
+ /* Start YYX at -YYN if negative to avoid negative indexes in
+ YYCHECK. */
+ int yyxbegin = yyn < 0 ? -yyn : 0;
+
+ /* Stay within bounds of both yycheck and yytname. */
+ int yychecklim = YYLAST - yyn + 1;
+ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+ int yycount = 1;
+
+ yyarg[0] = yytname[yytype];
+ yyfmt = yystpcpy (yyformat, yyunexpected);
+
+ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+ {
+ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
+ {
+ yycount = 1;
+ yysize = yysize0;
+ yyformat[sizeof yyunexpected - 1] = '\0';
+ break;
+ }
+ yyarg[yycount++] = yytname[yyx];
+ yysize1 = yysize + yytnamerr (0, yytname[yyx]);
+ yysize_overflow |= (yysize1 < yysize);
+ yysize = yysize1;
+ yyfmt = yystpcpy (yyfmt, yyprefix);
+ yyprefix = yyor;
+ }
- yysize1 = yysize + yystrlen (yyformat);
- if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
- return 2;
- yysize = yysize1;
+ yyf = YY_(yyformat);
+ yysize1 = yysize + yystrlen (yyf);
+ yysize_overflow |= (yysize1 < yysize);
+ yysize = yysize1;
- if (*yymsg_alloc < yysize)
- {
- *yymsg_alloc = 2 * yysize;
- if (! (yysize <= *yymsg_alloc
- && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
- *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
- return 1;
- }
+ if (yysize_overflow)
+ return YYSIZE_MAXIMUM;
- /* Avoid sprintf, as that infringes on the user's name space.
- Don't have undefined behavior even if the translation
- produced a string with the wrong number of "%s"s. */
- {
- char *yyp = *yymsg;
- int yyi = 0;
- while ((*yyp = *yyformat) != '\0')
- if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
- {
- yyp += yytnamerr (yyp, yyarg[yyi++]);
- yyformat += 2;
- }
- else
- {
- yyp++;
- yyformat++;
- }
- }
- return 0;
+ if (yyresult)
+ {
+ /* Avoid sprintf, as that infringes on the user's name space.
+ Don't have undefined behavior even if the translation
+ produced a string with the wrong number of "%s"s. */
+ char *yyp = yyresult;
+ int yyi = 0;
+ while ((*yyp = *yyf) != '\0')
+ {
+ if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
+ {
+ yyp += yytnamerr (yyp, yyarg[yyi++]);
+ yyf += 2;
+ }
+ else
+ {
+ yyp++;
+ yyf++;
+ }
+ }
+ }
+ return yysize;
+ }
}
#endif /* YYERROR_VERBOSE */
+
/*-----------------------------------------------.
| Release the memory associated to this symbol. |
@@ -2934,7 +2902,6 @@ yydestruct (yymsg, yytype, yyvaluep, yyscanner, imcc)
}
}
-
/* Prevent warnings from -Wmissing-prototypes. */
#ifdef YYPARSE_PARAM
#if defined __STDC__ || defined __cplusplus
@@ -2951,9 +2918,12 @@ int yyparse ();
#endif /* ! YYPARSE_PARAM */
-/*----------.
-| yyparse. |
-`----------*/
+
+
+
+/*-------------------------.
+| yyparse or yypush_parse. |
+`-------------------------*/
#ifdef YYPARSE_PARAM
#if (defined __STDC__ || defined __C99__FUNC__ \
@@ -3141,7 +3111,7 @@ YYSTYPE yylval;
/* First try to decide what to do without reference to lookahead token. */
yyn = yypact[yystate];
- if (yypact_value_is_default (yyn))
+ if (yyn == YYPACT_NINF)
goto yydefault;
/* Not known => get a lookahead token if don't already have one. */