Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Comparing changes

Choose two branches to see what's changed or to start a new pull request. If you need to, you can also compare across forks.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also compare across forks.
base: master
...
compare: avl_string_cache
Checking mergeability… Don't worry, you can still create the pull request.
  • 19 commits
  • 333 files changed
  • 0 commit comments
  • 2 contributors
Commits on Mar 31, 2010
@bacek bacek Branch to implement constant string caching described on FixingConsta…
…ntSTRINGCaching wikipage

git-svn-id: https://svn.parrot.org/parrot/branches/avl_string_cache@45333 d31e2699-5ff4-0310-a27c-f18f2fbe73fe
6c890c5
@bacek bacek Copy AVL tree implementation.
git-svn-id: https://svn.parrot.org/parrot/branches/avl_string_cache@45335 d31e2699-5ff4-0310-a27c-f18f2fbe73fe
e78a9a8
@bacek bacek Initial implemenation of string cache based on AVL tree
git-svn-id: https://svn.parrot.org/parrot/branches/avl_string_cache@45336 d31e2699-5ff4-0310-a27c-f18f2fbe73fe
5f9af4c
@bacek bacek Create function str_new_constant_ex (due lack of imagination for bett…
…er name) to create new constant STRING with provided charset and encoding

git-svn-id: https://svn.parrot.org/parrot/branches/avl_string_cache@45338 d31e2699-5ff4-0310-a27c-f18f2fbe73fe
9de411a
@bacek bacek Finish string_node_compare implementation.
git-svn-id: https://svn.parrot.org/parrot/branches/avl_string_cache@45339 d31e2699-5ff4-0310-a27c-f18f2fbe73fe
c10a569
@bacek bacek Use fixed size allocator for AVL nodes.
git-svn-id: https://svn.parrot.org/parrot/branches/avl_string_cache@45340 d31e2699-5ff4-0310-a27c-f18f2fbe73fe
e9957fa
@bacek bacek Fetch strings from PBC using new constant string cache.
git-svn-id: https://svn.parrot.org/parrot/branches/avl_string_cache@45341 d31e2699-5ff4-0310-a27c-f18f2fbe73fe
c85ec27
@bacek bacek Made string_node_compare non-static
git-svn-id: https://svn.parrot.org/parrot/branches/avl_string_cache@45342 d31e2699-5ff4-0310-a27c-f18f2fbe73fe
b75a337
@bacek bacek Swap old const string hash with new AVL cache in interpeter
git-svn-id: https://svn.parrot.org/parrot/branches/avl_string_cache@45343 d31e2699-5ff4-0310-a27c-f18f2fbe73fe
b29c57e
@bacek bacek Always allocate new string constant from root interpreter. Fix crash …
…when new constant allocated from thread-specific interpreter.

git-svn-id: https://svn.parrot.org/parrot/branches/avl_string_cache@45344 d31e2699-5ff4-0310-a27c-f18f2fbe73fe
aa797a6
@bacek bacek Fix couple of codetest failures
git-svn-id: https://svn.parrot.org/parrot/branches/avl_string_cache@45345 d31e2699-5ff4-0310-a27c-f18f2fbe73fe
f875499
@bacek bacek Reformat AVL tree code.
git-svn-id: https://svn.parrot.org/parrot/branches/avl_string_cache@45352 d31e2699-5ff4-0310-a27c-f18f2fbe73fe
c8870b4
@bacek bacek Simplify and restyle AVL code.
  - Drop redundant ##field into mangled names. We can't have more-than-one-tree per node.
  - Reindent according to Parrot codestyle.
  - Small optimization to avoid second call to compare() during lookups.

git-svn-id: https://svn.parrot.org/parrot/branches/avl_string_cache@45353 d31e2699-5ff4-0310-a27c-f18f2fbe73fe
85057d9
@bacek bacek Add avl_tree.h into string/api.c dependencies.
git-svn-id: https://svn.parrot.org/parrot/branches/avl_string_cache@45354 d31e2699-5ff4-0310-a27c-f18f2fbe73fe
490fc1d
@bacek bacek More codestd restyling of AVL tree.
git-svn-id: https://svn.parrot.org/parrot/branches/avl_string_cache@45355 d31e2699-5ff4-0310-a27c-f18f2fbe73fe
3e7f73c
@mikehh mikehh parrot copyright and Id and svn properties
git-svn-id: https://svn.parrot.org/parrot/branches/avl_string_cache@45356 d31e2699-5ff4-0310-a27c-f18f2fbe73fe
fb44f35
@mikehh mikehh add permitted duplicate copyright for include/parrot/avl_tree.h
git-svn-id: https://svn.parrot.org/parrot/branches/avl_string_cache@45357 d31e2699-5ff4-0310-a27c-f18f2fbe73fe
6b9601a
Commits on Apr 22, 2010
@bacek bacek Sync branch with trunk.
Conflicts:
	include/parrot/string_funcs.h
	src/packfile/pf_items.c
	src/string/api.c

git-svn-id: https://svn.parrot.org/parrot/branches/avl_string_cache@45889 d31e2699-5ff4-0310-a27c-f18f2fbe73fe
b025176
@bacek bacek Properly fix merge conflict.
git-svn-id: https://svn.parrot.org/parrot/branches/avl_string_cache@45890 d31e2699-5ff4-0310-a27c-f18f2fbe73fe
9442718
Showing with 27,919 additions and 25,873 deletions.
  1. +604 −0 .gitignore
  2. +1 −1  CREDITS
  3. +4 −0 ChangeLog
  4. +0 −3  Configure.pl
  5. +123 −25 DEPRECATED.pod
  6. +14 −25 MANIFEST
  7. +15 −3 MANIFEST.SKIP
  8. +8 −2 MANIFEST.generated
  9. +1 −1  META.yml
  10. +11 −8 NEWS
  11. +2 −0  PBC_COMPAT
  12. +1 −1  README
  13. +4 −4 README_cygwin.pod
  14. +0 −6 README_win32.pod
  15. +2 −1  RESPONSIBLE_PARTIES
  16. +1 −1  VERSION
  17. +56 −47 compilers/imcc/imcc.l
  18. +10 −17 compilers/imcc/imcc.y
  19. +2,219 −2,191 compilers/imcc/imclexer.c
  20. +948 −826 compilers/imcc/imcparser.c
  21. +243 −120 compilers/imcc/imcparser.h
  22. +4 −0 compilers/imcc/instructions.c
  23. +5 −5 compilers/imcc/main.c
  24. +16 −1 compilers/imcc/optimizer.c
  25. +5 −3 compilers/imcc/parser_util.c
  26. +4 −3 compilers/imcc/pbc.c
  27. +4 −3 compilers/imcc/symreg.h
  28. +3 −3 compilers/pge/PGE/Exp.pir
  29. +1 −1  compilers/pge/PGE/Regex.pir
  30. +10 −6 config/auto/arch.pm
  31. +4 −1 config/auto/attributes.pm
  32. +10 −0 config/auto/attributes/test_c.in
  33. +0 −93 config/auto/crypto.pm
  34. +0 −26 config/auto/crypto/crypto_c.in
  35. +0 −96 config/auto/gdbm.pm
  36. +0 −48 config/auto/gdbm/gdbm_c.in
  37. +7 −0 config/auto/warnings.pm
  38. +9 −9 config/gen/config_pm.pm
  39. +0 −35 config/gen/config_pm/config_lib_pasm.in
  40. +38 −0 config/gen/config_pm/config_lib_pir.in
  41. +4 −4 config/gen/config_pm/config_pir.in
  42. +2 −9 config/gen/core_pmcs.pm
  43. +0 −110 config/gen/crypto.pm
  44. +0 −161 config/gen/crypto/digest_pmc.in
  45. +0 −79 config/gen/crypto/digest_t.in
  46. +19 −1 config/gen/makefiles/docs.in
  47. +1 −126 config/gen/makefiles/dynpmc.in
  48. +96 −77 config/gen/makefiles/root.in
  49. +4 −0 config/gen/opengl.pm
  50. +1 −1  config/gen/platform/generic/env.c
  51. +2 −2 config/init/defaults.pm
  52. +1 −0  config/init/hints/cygwin.pm
  53. +0 −2  docs/embed.pod
  54. +2 −0  docs/parrothist.pod
  55. +3 −3 docs/pdds/draft/pdd01_overview.pod
  56. +6 −29 docs/pdds/draft/pdd05_opfunc.pod
  57. +4 −176 docs/pdds/draft/pdd06_pasm.pod
  58. +5 −36 docs/pdds/draft/pdd08_keys.pod
  59. +5 −12 docs/pdds/draft/pdd10_embedding.pod
  60. +5 −42 docs/pdds/draft/pdd11_extending.pod
  61. +1 −5 docs/pdds/draft/pdd14_numbers.pod
  62. +8 −39 docs/pdds/draft/pdd16_native_call.pod
  63. +6 −17 docs/pdds/draft/pdd29_compiler_tools.pod
  64. +6 −6 docs/pdds/draft/pdd31_hll.pod
  65. +5 −5 docs/pdds/draft/pdd31_hll_interop.pod
  66. +8 −22 docs/pdds/pdd00_pdd.pod
  67. +2 −6 docs/pdds/pdd03_calling_conventions.pod
  68. +2 −2 docs/pdds/pdd07_codingstd.pod
  69. +7 −15 docs/pdds/pdd09_gc.pod
  70. +1 −6 docs/pdds/pdd15_objects.pod
  71. +5 −13 docs/pdds/pdd17_pmc.pod
  72. +4 −10 docs/pdds/pdd18_security.pod
  73. +6 −16 docs/pdds/pdd19_pir.pod
  74. +6 −20 docs/pdds/pdd20_lexical_vars.pod
  75. +5 −13 docs/pdds/pdd21_namespaces.pod
  76. +4 −17 docs/pdds/pdd22_io.pod
  77. +3 −13 docs/pdds/pdd23_exceptions.pod
  78. +2 −10 docs/pdds/pdd24_events.pod
  79. +10 −18 docs/pdds/pdd25_concurrency.pod
  80. +2 −2 docs/pdds/pdd26_ast.pod
  81. +2 −8 docs/pdds/pdd27_multiple_dispatch.pod
  82. +5 −12 docs/pdds/pdd28_strings.pod
  83. +0 −8 docs/pdds/pdd30_install.pod
  84. +7 −7 docs/pdds/pdd_template.pod
  85. +11 −10 docs/project/release_manager_guide.pod
  86. +4 −1 examples/languages/abc/setup.pir
  87. +3 −0  examples/pir/befunge/setup.pir
  88. +0 −41 ext/SQLite3/DBDI.pm
  89. +0 −96 ext/SQLite3/DBDI/Driver/SQLite3.pm
  90. +0 −5 ext/SQLite3/Makefile.PL
  91. +0 −86 ext/SQLite3/Makefile.in
  92. +0 −135 ext/SQLite3/SQLite3.pir
  93. +0 −139 ext/SQLite3/gen_sqlite3.pl
  94. +0 −35 ext/SQLite3/t/test.p6
  95. +0 −25 ext/SQLite3/test.pir
  96. +0 −15 ext/nqp-rx/.gitignore
  97. +1,808 −1,192 ext/nqp-rx/src/stage0/HLL-s0.pir
  98. +11,393 −11,349 ext/nqp-rx/src/stage0/NQP-s0.pir
  99. +429 −429 ext/nqp-rx/src/stage0/P6Regex-s0.pir
  100. +278 −0 include/parrot/avl_tree.h
  101. +9 −11 include/parrot/call.h
  102. +15 −26 include/parrot/charset.h
  103. +19 −2 include/parrot/compiler.h
  104. +1 −7 include/parrot/embed.h
  105. +14 −27 include/parrot/encoding.h
  106. +7 −0 include/parrot/exceptions.h
  107. +1 −0  include/parrot/exit.h
  108. +9 −5 include/parrot/extend.h
  109. +3 −7 include/parrot/gc_api.h
  110. +7 −0 include/parrot/global_setup.h
  111. +24 −31 include/parrot/hash.h
  112. +1 −1  include/parrot/imcc.h
  113. +21 −32 include/parrot/interpreter.h
  114. +52 −51 include/parrot/io.h
  115. +3 −5 include/parrot/io_unix.h
  116. +1 −0  include/parrot/key.h
  117. +0 −6 include/parrot/misc.h
  118. +15 −3 include/parrot/nci.h
  119. +0 −2  include/parrot/oo.h
  120. +10 −9 include/parrot/packfile.h
  121. +13 −2 include/parrot/pmc.h
  122. +10 −11 include/parrot/runcore_api.h
  123. +21 −0 include/parrot/string.h
  124. +64 −151 include/parrot/string_funcs.h
  125. +2 −3 include/parrot/string_primitives.h
  126. +3 −18 include/parrot/sub.h
  127. +2 −3 include/parrot/vtables.h
  128. +0 −2  lib/Parrot/Configure/Options/Conf.pm
  129. +2 −0  lib/Parrot/Configure/Options/Test/Prepare.pm
  130. +0 −3  lib/Parrot/Configure/Step/List.pm
  131. +6 −6 lib/Parrot/Distribution.pm
  132. +1 −0  lib/Parrot/Harness/Smoke.pm
  133. +92 −50 lib/Parrot/Headerizer.pm
  134. +1 −1  lib/Parrot/Manifest.pm
  135. +22 −9 lib/Parrot/Ops2c/Utils.pm
  136. +5 −8 lib/Parrot/Pmc2c/PCCMETHOD.pm
  137. +1 −1  lib/Parrot/Pmc2c/PMCEmitter.pm
  138. +5 −2 lib/Parrot/Pmc2c/Pmc2cMain.pm
  139. +1 −1  ports/debian/control.in
  140. BIN  ports/fedora/2.3.0/parrot.desk.in.tar.gz
  141. +19 −0 ports/fedora/2.3.0/parrot.patch
  142. +40 −17 ports/fedora/{parrot.spec.fedora → 2.3.0/parrot.spec}
  143. +0 −38 ports/fedora/parrot.patch
  144. +47 −0 ports/suse/2.2.0/parrot.diff
  145. +226 −0 ports/suse/2.2.0/parrot.spec
  146. +0 −244 ports/suse/parrot.spec.suse
  147. +1 −1  ports/ubuntu/control.in
  148. +5 −5 runtime/parrot/library/P6object.pir
  149. +14 −4 runtime/parrot/library/ProfTest/Matcher.nqp
  150. +36 −19 runtime/parrot/library/ProfTest/PIRProfile.nqp
  151. +18 −37 runtime/parrot/library/ProfTest/Want.nqp
  152. +0 −135 runtime/parrot/library/SQLite3.pir
  153. +1 −1  runtime/parrot/library/Stream/Base.pir
  154. +851 −0 runtime/parrot/library/TAP/Formatter.pir
  155. +421 −0 runtime/parrot/library/TAP/Harness.pir
  156. +1,662 −0 runtime/parrot/library/TAP/Parser.pir
  157. +14 −12 runtime/parrot/library/Test/Builder/Test.pir
  158. +155 −966 runtime/parrot/library/distutils.pir
  159. +779 −0 runtime/parrot/library/osutils.pir
  160. +1 −1  runtime/parrot/library/pcore.pir
  161. +124 −278 src/call/args.c
  162. +9 −10 src/call/context.c
  163. +1 −0  src/call/ops.c
  164. +7 −8 src/call/pcc.c
  165. +11 −3 src/debug.c
  166. +4 −4 src/dynext.c
  167. +0 −442 src/dynpmc/gdbmhash.pmc
  168. +5 −5 src/embed.c
  169. +10 −3 src/exceptions.c
  170. +1 −4 src/exit.c
  171. +14 −13 src/extend.c
  172. +34 −56 src/gc/alloc_resources.c
  173. +1 −1  src/gc/api.c
  174. +70 −104 src/gc/gc_inf.c
  175. +2 −2 src/gc/gc_ms.c
  176. +6 −13 src/gc/gc_private.h
  177. +1 −1  src/gc/mark_sweep.c
  178. +1 −1  src/global.c
  179. +3 −9 src/global_setup.c
  180. +107 −86 src/hash.c
  181. +4 −5 src/hll.c
  182. +4 −0 src/interp/inter_create.c
  183. +1 −4 src/interp/inter_misc.c
  184. +5 −8 src/io/api.c
  185. +13 −23 src/io/buffer.c
  186. +42 −33 src/io/filehandle.c
  187. +6 −5 src/io/unix.c
  188. +8 −8 src/io/utf8.c
  189. +2 −2 src/io/win32.c
  190. +23 −32 src/key.c
  191. +50 −40 src/library.c
  192. +17 −26 src/main.c
  193. +5 −8 src/multidispatch.c
  194. +57 −18 src/nci/api.c
  195. +207 −124 src/nci/core_thunks.c
  196. +1,235 −732 src/nci/extra_thunks.c
  197. +7 −12 src/oo.c
  198. +26 −26 src/ops/bit.ops
  199. +12 −4 src/ops/core.ops
  200. +206 −190 src/ops/ops.num
  201. +7 −8 src/ops/set.ops
  202. +35 −32 src/ops/string.ops
  203. +1 −1  src/ops/var.ops
  204. +2 −2 src/packdump.c
  205. +33 −36 src/packfile.c
  206. +42 −14 src/packfile/pf_items.c
  207. +6 −6 src/parrot_debugger.c
  208. +173 −48 src/pbc_dump.c
  209. +72 −55 src/pmc.c
  210. +7 −1 src/pmc/bigint.pmc
  211. +1 −3 src/pmc/bignum.pmc
  212. +61 −64 src/pmc/callcontext.pmc
  213. +2 −2 src/pmc/class.pmc
  214. +15 −19 src/pmc/codestring.pmc
  215. +6 −1 src/pmc/complex.pmc
  216. +0 −18 src/pmc/continuation.pmc
  217. +4 −5 src/pmc/coroutine.pmc
  218. +9 −6 src/pmc/default.pmc
  219. +13 −14 src/pmc/env.pmc
  220. +2 −2 src/pmc/eventhandler.pmc
  221. +7 −16 src/pmc/filehandle.pmc
  222. +2 −2 src/pmc/fixedbooleanarray.pmc
  223. +3 −3 src/pmc/fixedintegerarray.pmc
  224. +8 −15 src/pmc/fixedpmcarray.pmc
  225. +5 −5 src/pmc/fixedstringarray.pmc
  226. +55 −17 src/pmc/hash.pmc
  227. +2 −0  src/pmc/hashiterator.pmc
  228. +16 −15 src/pmc/imageio.pmc
  229. +3 −4 src/pmc/integer.pmc
  230. +1 −2  src/pmc/key.pmc
  231. +5 −7 src/pmc/lexinfo.pmc
  232. +24 −13 src/pmc/namespace.pmc
  233. +10 −8 src/pmc/object.pmc
  234. +4 −2 src/pmc/opcode.pmc
  235. +2 −2 src/pmc/orderedhash.pmc
  236. +9 −5 src/pmc/packfile.pmc
  237. +1 −2  src/pmc/packfileannotations.pmc
  238. +1 −1  src/pmc/packfiledirectory.pmc
  239. +1 −1  src/pmc/parrotinterpreter.pmc
  240. +1 −3 src/pmc/pmcproxy.pmc
  241. +40 −35 src/pmc/resizablepmcarray.pmc
  242. +18 −25 src/pmc/resizablestringarray.pmc
  243. +0 −118 src/pmc/retcontinuation.pmc
  244. +1 −1  src/pmc/role.pmc
  245. +5 −5 src/pmc/scalar.pmc
  246. +12 −5 src/pmc/schedulermessage.pmc
  247. +16 −20 src/pmc/string.pmc
  248. +10 −23 src/pmc/stringhandle.pmc
  249. +9 −23 src/pmc/sub.pmc
  250. +21 −28 src/pmc/unmanagedstruct.pmc
  251. +9 −11 src/pmc_freeze.c
  252. +27 −41 src/runcore/cores.c
  253. +14 −7 src/runcore/main.c
  254. +3 −3 src/runcore/profiling.c
  255. +98 −92 src/runcore/trace.c
  256. +11 −12 src/scheduler.c
  257. +41 −44 src/spf_render.c
  258. +1 −1  src/spf_vtable.c
  259. +605 −862 src/string/api.c
  260. +17 −16 src/string/charset.c
  261. +130 −204 src/string/charset/ascii.c
  262. +3 −24 src/string/charset/ascii.h
  263. +49 −71 src/string/charset/binary.c
  264. +1 −2  src/string/charset/binary.h
  265. +153 −186 src/string/charset/iso-8859-1.c
  266. +3 −7 src/string/charset/iso-8859-1.h
  267. +97 −146 src/string/charset/unicode.c
  268. +1 −2  src/string/charset/unicode.h
  269. +8 −1 src/string/encoding.c
  270. +62 −242 src/string/encoding/fixed_8.c
  271. +1 −2  src/string/encoding/fixed_8.h
  272. +92 −230 src/string/encoding/ucs2.c
  273. +1 −2  src/string/encoding/ucs2.h
  274. +34 −268 src/string/encoding/utf16.c
  275. +1 −2  src/string/encoding/utf16.h
Sorry, we could not display the entire diff because too many files (333) changed.
View
604 .gitignore
@@ -0,0 +1,604 @@
+# ex: set ro:
+# $Id
+# generated by tools/dev/mk_manifest_and_skip.pl Wed Apr 21 10:28:38 2010 UT
+#
+# 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.
+#
+# Ignore the SVN directories
+\B.svn\b
+
+# ports/ should not go into release tarballs
+ports
+# generated from svn:ignore of './'
+*.core
+*.def
+*.exe
+*.exp
+*.ilk
+*.lib
+*.manifest
+*.ncb
+*.o
+*.obj
+*.patch
+*.pdb
+*.sln
+*.sto
+*.suo
+*.tmp
+*.vcproj*
+.git
+.parrot_current_rev
+CFLAGS
+MANIFEST.configure.generated
+Makefile
+TAGS
+all_cstring.str
+blib
+config_lib.pir
+cover_db
+install_config.fpmc
+installable*
+libparrot.def
+libparrot.dll
+miniparrot
+myconfig
+parrot
+parrot-nqp
+parrot-nqp.c
+parrot-nqp.pbc
+parrot.ilk
+parrot.iss
+parrot.pc
+parrot.pdb
+parrot_config
+parrot_config.c
+parrot_config.pbc
+parrot_debugger
+parrot_nci_thunk_gen
+parrot_nci_thunk_gen.c
+parrot_nci_thunk_gen.pbc
+parrot_test_run.tar.gz
+pbc_disassemble
+pbc_dump
+pbc_info
+pbc_merge
+pbc_to_exe
+pbc_to_exe.*
+perl6
+pirc
+tags
+tapir
+tapir.*
+temp.file
+test
+test.c
+test.cco
+test.err
+test.ilk
+test.ldo
+test.out
+test.pdb
+vc60.pdb
+vc70.pdb
+vtable.dump
+# generated from svn:ignore of 'compilers/data_json/'
+compilers/data_json/data_json.pbc
+# generated from svn:ignore of 'compilers/data_json/data_json/'
+compilers/data_json/data_json/*.pbc
+compilers/data_json/data_json/*.pir
+# generated from svn:ignore of 'compilers/imcc/'
+compilers/imcc/*.flag
+compilers/imcc/*.o
+compilers/imcc/*.obj
+compilers/imcc/*.tmp
+compilers/imcc/Rules.mak
+compilers/imcc/imcc
+compilers/imcc/imclexer.c
+compilers/imcc/imcparser.c
+compilers/imcc/imcparser.h
+compilers/imcc/imcparser.output
+# generated from svn:ignore of 'compilers/json/'
+compilers/json/JSON.pbc
+# generated from svn:ignore of 'compilers/json/JSON/'
+compilers/json/JSON/*.pbc
+compilers/json/JSON/*.pir
+# generated from svn:ignore of 'compilers/ncigen/'
+compilers/ncigen/Makefile
+compilers/ncigen/ncigen.pbc
+# generated from svn:ignore of 'compilers/ncigen/src/'
+compilers/ncigen/src/gen_actions.pir
+compilers/ncigen/src/gen_builtins.pir
+compilers/ncigen/src/gen_grammar.pir
+# generated from svn:ignore of 'compilers/nqp/'
+compilers/nqp/nqp.pbc
+# generated from svn:ignore of 'compilers/nqp/bootstrap/'
+compilers/nqp/bootstrap/gen_actions.pir
+compilers/nqp/bootstrap/nqp.pbc
+# generated from svn:ignore of 'compilers/nqp/src/'
+compilers/nqp/src/Grammar_gen.pir
+# generated from svn:ignore of 'compilers/pct/src/PAST/'
+compilers/pct/src/PAST/*.pbc
+# generated from svn:ignore of 'compilers/pct/src/PCT/'
+compilers/pct/src/PCT/*.pbc
+# generated from svn:ignore of 'compilers/pct/src/POST/'
+compilers/pct/src/POST/*.pbc
+compilers/pct/src/POST/Grammar_gen.pir
+# generated from svn:ignore of 'compilers/pge/'
+compilers/pge/PGE.pbc
+# generated from svn:ignore of 'compilers/pge/PGE/'
+compilers/pge/PGE/*.dll
+compilers/pge/PGE/builtins_gen.pir
+# generated from svn:ignore of 'compilers/pirc/'
+compilers/pirc/*.o
+compilers/pirc/*.obj
+compilers/pirc/*.pbd
+compilers/pirc/pirc
+compilers/pirc/pirc.exe
+# generated from svn:ignore of 'compilers/pirc/t/'
+compilers/pirc/t/basic_?.pir
+compilers/pirc/t/basic_??.pir
+compilers/pirc/t/heredoc_?.pir
+compilers/pirc/t/macro_?.pir
+compilers/pirc/t/stmts_?.pir
+compilers/pirc/t/subflags_?.pir
+# generated from svn:ignore of 'compilers/tge/'
+compilers/tge/tgc.pbc
+# generated from svn:ignore of 'compilers/tge/TGE/'
+compilers/tge/TGE/Parser.pir
+# generated from svn:ignore of 'docs/'
+docs/*.tmp
+docs/Makefile
+docs/doc-prep
+docs/html
+docs/packfile-c.pod
+docs/packfile-perl.pod
+# generated from svn:ignore of 'docs/book/'
+docs/book/*.html
+# generated from svn:ignore of 'docs/ops/'
+docs/ops/*.pod
+# generated from svn:ignore of 'editor/'
+editor/Makefile
+editor/imc.vim
+editor/imcc.xml
+editor/pir.vim
+# generated from svn:ignore of 'examples/languages/abc/'
+examples/languages/abc/*.c
+examples/languages/abc/*.exe
+examples/languages/abc/*.iss
+examples/languages/abc/*.o
+examples/languages/abc/*.obj
+examples/languages/abc/*.pbc
+examples/languages/abc/MANIFEST
+examples/languages/abc/abc
+examples/languages/abc/installable_abc
+examples/languages/abc/man
+# generated from svn:ignore of 'examples/languages/abc/src/'
+examples/languages/abc/src/gen_actions.pir
+examples/languages/abc/src/gen_builtins.pir
+examples/languages/abc/src/gen_grammar.pir
+# generated from svn:ignore of 'examples/languages/abc/t/'
+examples/languages/abc/t/*_*.out
+examples/languages/abc/t/*_*.pir
+# generated from svn:ignore of 'examples/languages/squaak/'
+examples/languages/squaak/*.c
+examples/languages/squaak/*.exe
+examples/languages/squaak/*.iss
+examples/languages/squaak/*.o
+examples/languages/squaak/*.obj
+examples/languages/squaak/*.pbc
+examples/languages/squaak/MANIFEST
+examples/languages/squaak/installable_squaak
+examples/languages/squaak/squaak
+# generated from svn:ignore of 'examples/languages/squaak/src/'
+examples/languages/squaak/src/gen_*.pir
+# generated from svn:ignore of 'examples/mops/'
+examples/mops/*.o
+examples/mops/mops
+# generated from svn:ignore of 'examples/nci/'
+examples/nci/*.pbc
+# generated from svn:ignore of 'examples/pasm/'
+examples/pasm/hello
+examples/pasm/hello.o
+examples/pasm/hello.pbc
+# generated from svn:ignore of 'examples/pir/befunge/'
+examples/pir/befunge/*.c
+examples/pir/befunge/*.exe
+examples/pir/befunge/*.iss
+examples/pir/befunge/*.o
+examples/pir/befunge/*.obj
+examples/pir/befunge/*.pbc
+examples/pir/befunge/MANIFEST
+examples/pir/befunge/befunge
+examples/pir/befunge/installable_befunge
+# generated from svn:ignore of 'ext/'
+ext/Makefile
+# generated from svn:ignore of 'ext/Parrot-Embed/'
+ext/Parrot-Embed/*.bs
+ext/Parrot-Embed/*.bundle
+ext/Parrot-Embed/*.c
+ext/Parrot-Embed/*.def
+ext/Parrot-Embed/*.dll
+ext/Parrot-Embed/*.dump
+ext/Parrot-Embed/*.dylib
+ext/Parrot-Embed/*.exe
+ext/Parrot-Embed/*.exp
+ext/Parrot-Embed/*.h
+ext/Parrot-Embed/*.ilk
+ext/Parrot-Embed/*.lib
+ext/Parrot-Embed/*.manifest
+ext/Parrot-Embed/*.o
+ext/Parrot-Embed/*.obj
+ext/Parrot-Embed/*.old
+ext/Parrot-Embed/*.pdb
+ext/Parrot-Embed/*.pdb
+ext/Parrot-Embed/*.so
+ext/Parrot-Embed/*.tmp
+ext/Parrot-Embed/*.xs
+ext/Parrot-Embed/Build
+ext/Parrot-Embed/Build.bat
+ext/Parrot-Embed/Makefile
+ext/Parrot-Embed/Makefile.PL
+ext/Parrot-Embed/_build
+ext/Parrot-Embed/blib
+ext/Parrot-Embed/dll.base
+ext/Parrot-Embed/pm_to_blib
+# generated from svn:ignore of 'ext/Parrot-Embed/lib/Parrot/'
+ext/Parrot-Embed/lib/Parrot/*.c
+ext/Parrot-Embed/lib/Parrot/*.obj
+# generated from svn:ignore of 'ext/Parrot-Embed/t/'
+ext/Parrot-Embed/t/*.pbc
+# generated from svn:ignore of 'include/parrot/'
+include/parrot/*.tmp
+include/parrot/config.h
+include/parrot/core_pmcs.h
+include/parrot/extend_vtable.h
+include/parrot/feature.h
+include/parrot/has_header.h
+include/parrot/opsenum.h
+include/parrot/pbcversion.h
+include/parrot/platform.h
+include/parrot/platform_interface.h
+include/parrot/platform_limits.h
+include/parrot/vtable.h
+# generated from svn:ignore of 'include/parrot/oplib/'
+include/parrot/oplib/*_ops.h
+include/parrot/oplib/*_ops_cg*.h
+include/parrot/oplib/*_ops_switch.h
+include/parrot/oplib/ops.h
+# generated from svn:ignore of 'include/pmc/'
+include/pmc/*.h
+# generated from svn:ignore of 'lib/'
+lib/DumbLink.pm
+# generated from svn:ignore of 'lib/Parrot/'
+lib/Parrot/*.tmp
+lib/Parrot/Jit.pm
+lib/Parrot/Makefile
+lib/Parrot/OpLib
+lib/Parrot/PMC.pm
+lib/Parrot/PakFile2.bs
+lib/Parrot/PakFile2.c
+lib/Parrot/blib
+lib/Parrot/pm_to_blib
+# generated from svn:ignore of 'lib/Parrot/Config/'
+lib/Parrot/Config/Generated.pm
+# generated from svn:ignore of 'lib/Parrot/Pmc2c/'
+lib/Parrot/Pmc2c/PCCMETHOD_BITS.pm
+# generated from svn:ignore of 'runtime/parrot/dynext/'
+runtime/parrot/dynext/*.bundle
+runtime/parrot/dynext/*.def
+runtime/parrot/dynext/*.dll
+runtime/parrot/dynext/*.dylib
+runtime/parrot/dynext/*.exe
+runtime/parrot/dynext/*.exp
+runtime/parrot/dynext/*.ilk
+runtime/parrot/dynext/*.lib
+runtime/parrot/dynext/*.manifest
+runtime/parrot/dynext/*.obj
+runtime/parrot/dynext/*.pdb
+runtime/parrot/dynext/*.so
+runtime/parrot/dynext/libnci.*
+# generated from svn:ignore of 'runtime/parrot/include/'
+runtime/parrot/include/*.fpmc
+runtime/parrot/include/*.pasm
+runtime/parrot/include/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/'
+runtime/parrot/library/*.pbc
+runtime/parrot/library/OpenGL_funcs.pir
+runtime/parrot/library/PAST
+runtime/parrot/library/config.pir
+# generated from svn:ignore of 'runtime/parrot/library/CGI/'
+runtime/parrot/library/CGI/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/Config/'
+runtime/parrot/library/Config/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/Configure/'
+runtime/parrot/library/Configure/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/Data/'
+runtime/parrot/library/Data/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/Data/Dumper/'
+runtime/parrot/library/Data/Dumper/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/Digest/'
+runtime/parrot/library/Digest/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/Getopt/'
+runtime/parrot/library/Getopt/Obj.pbc
+# generated from svn:ignore of 'runtime/parrot/library/MIME/'
+runtime/parrot/library/MIME/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/Math/'
+runtime/parrot/library/Math/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/NCI/'
+runtime/parrot/library/NCI/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/OpenGL/'
+runtime/parrot/library/OpenGL/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/PCT/'
+runtime/parrot/library/PCT/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/PGE/'
+runtime/parrot/library/PGE/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/Parrot/'
+runtime/parrot/library/Parrot/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/ProfTest/'
+runtime/parrot/library/ProfTest/*.pbc
+runtime/parrot/library/ProfTest/*.pir
+# generated from svn:ignore of 'runtime/parrot/library/Stream/'
+runtime/parrot/library/Stream/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/String/'
+runtime/parrot/library/String/Utils.pbc
+# generated from svn:ignore of 'runtime/parrot/library/TAP/'
+runtime/parrot/library/TAP/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/Tcl/'
+runtime/parrot/library/Tcl/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/Test/'
+runtime/parrot/library/Test/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/Test/Builder/'
+runtime/parrot/library/Test/Builder/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/YAML/'
+runtime/parrot/library/YAML/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/YAML/Dumper/'
+runtime/parrot/library/YAML/Dumper/*.pbc
+# generated from svn:ignore of 'runtime/parrot/library/YAML/Parser/'
+runtime/parrot/library/YAML/Parser/*.pbc
+# generated from svn:ignore of 'src/'
+src/*.o
+src/*.obj
+src/*.str
+src/asmfun.*
+src/core_pmcs.c
+src/exec_cpu.c
+src/exec_dep.c
+src/exec_dep.h
+src/extend_vtable.c
+src/extra_nci_thunks.c
+src/fingerprint.c
+src/glut_callbacks.c
+src/glut_nci_thunks.c
+src/glut_nci_thunks.nci
+src/install_config.c
+src/jit_cpu.c
+src/jit_defs.c
+src/jit_emit.h
+src/null_config.c
+src/parrot_config.c
+src/parrot_config.h
+src/platform.c
+src/platform_asm.s
+src/revision.c
+# generated from svn:ignore of 'src/atomic/'
+src/atomic/*.gcda
+src/atomic/*.o
+# generated from svn:ignore of 'src/call/'
+src/call/*.o
+src/call/*.obj
+src/call/*.str
+# generated from svn:ignore of 'src/dynoplibs/'
+src/dynoplibs/*.bundle
+src/dynoplibs/*.c
+src/dynoplibs/*.dll
+src/dynoplibs/*.exp
+src/dynoplibs/*.h
+src/dynoplibs/*.ilk
+src/dynoplibs/*.lib
+src/dynoplibs/*.manifest
+src/dynoplibs/*.o
+src/dynoplibs/*.obj
+src/dynoplibs/*.pdb
+src/dynoplibs/*.so
+src/dynoplibs/Defines.mak
+src/dynoplibs/Rules.mak
+# generated from svn:ignore of 'src/dynpmc/'
+src/dynpmc/*.bundle
+src/dynpmc/*.c
+src/dynpmc/*.def
+src/dynpmc/*.dll
+src/dynpmc/*.dump
+src/dynpmc/*.dylib
+src/dynpmc/*.exe
+src/dynpmc/*.exp
+src/dynpmc/*.h
+src/dynpmc/*.ilk
+src/dynpmc/*.lib
+src/dynpmc/*.manifest
+src/dynpmc/*.o
+src/dynpmc/*.obj
+src/dynpmc/*.pdb
+src/dynpmc/*.so
+src/dynpmc/Makefile
+src/dynpmc/md2.pmc
+src/dynpmc/md4.pmc
+src/dynpmc/md5.pmc
+src/dynpmc/ripemd160.pmc
+src/dynpmc/sha.pmc
+src/dynpmc/sha1.pmc
+src/dynpmc/sha256.pmc
+src/dynpmc/sha512.pmc
+# generated from svn:ignore of 'src/gc/'
+src/gc/*.bundle
+src/gc/*.c
+src/gc/*.def
+src/gc/*.dll
+src/gc/*.dump
+src/gc/*.dylib
+src/gc/*.exe
+src/gc/*.exp
+src/gc/*.h
+src/gc/*.ilk
+src/gc/*.lib
+src/gc/*.manifest
+src/gc/*.o
+src/gc/*.obj
+src/gc/*.pdb
+src/gc/*.so
+src/gc/Makefile
+# generated from svn:ignore of 'src/interp/'
+src/interp/*.o
+src/interp/*.str
+# generated from svn:ignore of 'src/io/'
+src/io/*.o
+src/io/*.obj
+src/io/*.str
+# generated from svn:ignore of 'src/nci/'
+src/nci/*.o
+src/nci/*.obj
+src/nci/*.str
+# generated from svn:ignore of 'src/ops/'
+src/ops/*.c
+src/ops/*.o
+src/ops/*.obj
+# generated from svn:ignore of 'src/packfile/'
+src/packfile/*.o
+src/packfile/*.obj
+# generated from svn:ignore of 'src/pmc/'
+src/pmc/*.c
+src/pmc/*.dump
+src/pmc/*.h
+src/pmc/*.o
+src/pmc/*.obj
+src/pmc/*.str
+src/pmc/*.tmp
+src/pmc/Makefile
+# generated from svn:ignore of 'src/runcore/'
+src/runcore/*.o
+src/runcore/*.obj
+src/runcore/*.str
+# generated from svn:ignore of 'src/string/'
+src/string/*.o
+src/string/*.obj
+src/string/*.str
+src/string/private_cstring.h
+# generated from svn:ignore of 'src/string/charset/'
+src/string/charset/*.o
+src/string/charset/*.obj
+# generated from svn:ignore of 'src/string/encoding/'
+src/string/encoding/*.o
+src/string/encoding/*.obj
+# generated from svn:ignore of 't/benchmark/'
+t/benchmark/*.pasm
+t/benchmark/*.pir
+# generated from svn:ignore of 't/compilers/imcc/'
+t/compilers/imcc/*.pbc
+# generated from svn:ignore of 't/compilers/imcc/imcpasm/'
+t/compilers/imcc/imcpasm/*.pasm
+t/compilers/imcc/imcpasm/*.pbc
+t/compilers/imcc/imcpasm/*.pir
+t/compilers/imcc/imcpasm/*_pbcexe
+# generated from svn:ignore of 't/compilers/imcc/reg/'
+t/compilers/imcc/reg/*.pasm
+t/compilers/imcc/reg/*.pbc
+t/compilers/imcc/reg/*.pir
+t/compilers/imcc/reg/*_pbcexe*
+# generated from svn:ignore of 't/compilers/imcc/syn/'
+t/compilers/imcc/syn/*.pasm
+t/compilers/imcc/syn/*.pbc
+t/compilers/imcc/syn/*.pir
+t/compilers/imcc/syn/*_pbcexe*
+# generated from svn:ignore of 't/compilers/json/'
+t/compilers/json/*.pbc
+t/compilers/json/*.pir
+t/compilers/json/*_pbcexe
+# generated from svn:ignore of 't/compilers/pct/'
+t/compilers/pct/*.pbc
+t/compilers/pct/*.pir
+# generated from svn:ignore of 't/compilers/pge/'
+t/compilers/pge/*.pasm
+t/compilers/pge/*.pbc
+t/compilers/pge/*.pir
+t/compilers/pge/*_pbcexe
+# generated from svn:ignore of 't/compilers/pge/p5regex/'
+t/compilers/pge/p5regex/*.pir
+# generated from svn:ignore of 't/compilers/pge/perl6regex/'
+t/compilers/pge/perl6regex/*.pbc
+t/compilers/pge/perl6regex/*.pir
+# generated from svn:ignore of 't/compilers/tge/'
+t/compilers/tge/*.pbc
+t/compilers/tge/*.pir
+t/compilers/tge/*_pbcexe
+# generated from svn:ignore of 't/dynoplibs/'
+t/dynoplibs/*.pasm
+t/dynoplibs/*.pbc
+t/dynoplibs/*.pir
+# generated from svn:ignore of 't/dynpmc/'
+t/dynpmc/*.pasm
+t/dynpmc/*.pbc
+t/dynpmc/*.pir
+t/dynpmc/*_pbcexe*
+t/dynpmc/md2.t
+t/dynpmc/md4.t
+t/dynpmc/md5.t
+t/dynpmc/ripemd160.t
+t/dynpmc/sha.t
+t/dynpmc/sha1.t
+t/dynpmc/sha256.t
+t/dynpmc/sha512.t
+# generated from svn:ignore of 't/examples/'
+t/examples/*.pasm
+t/examples/*.pbc
+t/examples/*.pir
+t/examples/*_pbcexe*
+# generated from svn:ignore of 't/library/'
+t/library/*.out
+t/library/*.pasm
+t/library/*.pbc
+t/library/*.pir
+t/library/*_pbcexe*
+# generated from svn:ignore of 't/native_pbc/'
+t/native_pbc/*_pbcexe*
+# generated from svn:ignore of 't/oo/'
+t/oo/*.pbc
+t/oo/*.pir
+# generated from svn:ignore of 't/op/'
+t/op/*.out
+t/op/*.pasm
+t/op/*.pbc
+t/op/*.pir
+t/op/*_pbcexe*
+# generated from svn:ignore of 't/perl/'
+t/perl/Parrot_Test_1.pasm
+t/perl/Parrot_Test_1.pir
+# generated from svn:ignore of 't/pmc/'
+t/pmc/*.out
+t/pmc/*.pasm
+t/pmc/*.pbc
+t/pmc/*.pir
+t/pmc/*_pbcexe*
+# generated from svn:ignore of 't/src/'
+t/src/*_*
+# generated from svn:ignore of 't/stress/'
+t/stress/*.out
+t/stress/*.pasm
+t/stress/*.pbc
+t/stress/*.pir
+t/stress/*_pbcexe*
+# generated from svn:ignore of 't/tools/'
+t/tools/*.pbc
+t/tools/*.pir
+t/tools/pdb.t.*
+t/tools/pmc2c.*.c
+t/tools/pmc2c.*.dump
+t/tools/pmc2c.*.h
+t/tools/pmc2c.*.pmc
+# Local variables:
+# mode: text
+# buffer-read-only: t
+# End:
View
2  CREDITS
@@ -402,7 +402,7 @@ D: Documentation patch for Parrot_PMC_get_pointer_intkey()
N: Gerd Pokorra
E: pokorra@uni-siegen.de
-D: Release manager for 1.9.0
+D: Release manager for 1.9.0 and 2.3.0
N: Goplat
D: Win98 and other fixes.
View
4 ChangeLog
@@ -1,5 +1,9 @@
#1 $Id$
+2010.04.20 Gerd
+ * Released 2.3.0
+ See NEWS for more.
+
2010.03.16 cotto
* Released 2.2.0
See NEWS for more.
View
3  Configure.pl
@@ -632,10 +632,8 @@ =head2 Example
auto::env
auto::gmp
auto::readline
- auto::gdbm
auto::pcre
auto::opengl
- auto::crypto
auto::gettext
auto::snprintf
# auto::perldoc
@@ -644,7 +642,6 @@ =head2 Example
auto::icu
gen::config_h
gen::core_pmcs
- gen::crypto
gen::opengl
gen::makefiles
gen::platform
View
148 DEPRECATED.pod
@@ -7,8 +7,8 @@ All items in this list should have a corresponding Trac ticket[1].
=head1 Experimental Status
-These features are not considered stable, even though they may
-have shipped in a stable release of parrot[2]. Use them at your own
+These features are not considered supported, even though they may
+have shipped in a supported release of parrot[2]. Use them at your own
risk, as they can be removed or changed in any release. These
items are marked below with C<[experimental]>.
@@ -66,21 +66,64 @@ not already here. This allows the usage of $P0() instead of $P0($P0).
L<https://trac.parrot.org/parrot/ticket/103>
-=item Digest dynpmcs [eligible in 2.4]
+=item NCI without signature ("raw" pointers) [eligible in 2.4]
-The digest dynpmcs are, since the posting of this notice, available on
-http://gitorious.org/digest-dynpmcs and will no longer be distributed
-with parrot after 2.3.
+No equivalent functionality is promised. You shouldn't be using this. Here be
+segfaults.
-L<https://trac.parrot.org/parrot/ticket/1467>
+L<https://trac.parrot.org/parrot/ticket/1549>
-=item gdbmhash dynpmc [eligible in 2.4]
+=item UnManagedStruct handling nested structure [eligible in 2.4]
-The gdbmhash dynpmc is, since the posting of this notice, available on
-http://gitorious.org/dbm-dynpmcs and will no longer be distributed
-with parrot after 2.3.
+UnManagedStruct will be simplified to only support flat structures. This means
+that elements which themselves have structure - struct pointers and function
+pointers will be stored as C<void *> and C<void (*)(void)> respectively. To use
+these, they will need to be cast to the appropriate signature on access.
-L<https://trac.parrot.org/parrot/ticket/1469>
+L<https://trac.parrot.org/parrot/ticket/1551>
+
+=item UnManagedStruct initializer structure [eligible in 2.4]
+
+The initializer structure will cease to be an array of triples. In stead, an
+array of flags (no counts or offsets), or a string representation of the same
+information may be used.
+
+L<https://trac.parrot.org/parrot/ticket/1552>
+
+=item UnManagedStruct get_integer, set_integer_native [eligible in 2.4]
+
+These will no longer refer to the byte length of the buffer, but to the number
+of times the struct is repeated; emulating an array of structs.
+
+L<https://trac.parrot.org/parrot/ticket/1553>
+
+=item ManagedStruct reallocations based on shape changes [eligible in 2.4]
+
+Since shape changes may simply be used for re-interpreting data, and may also
+occur in several steps, re-allocating after any one shape change may be
+undesirable. In stead, an explicit allocate/reallocate method will be provided.
+
+L<https://trac.parrot.org/parrot/ticket/1554>
+
+=item Auto-vivification of nested aggregates [eligible in 2.4]
+
+Auto-vivifation of nested aggregated is deprecated.
+
+E.g.
+
+ $P0 = new ['Hash']
+ $S1 = $P0['foo';'bar';'baz']
+
+will not auto-vivify nested hashes and return PMCNULL early.
+
+L<https://trac.parrot.org/parrot/ticket/1561>
+
+=item PMC must use manual_attrs or auto_attrs flag [eligible in 2.4]
+
+PMCs must no longer use default value for manual/auto attribute allocation,
+manual_attrs or auto_attrs must be specified.
+
+L<http://trac.parrot.org/parrot/ticket/1506>
=back
@@ -122,10 +165,6 @@ L<https://trac.parrot.org/parrot/ticket/1260>
=item get_results opcode order and features [eligible in 2.1]
-Move get_results to follow invoke.
-
-L<https://trac.parrot.org/parrot/ticket/1405>
-
get_results no longer used to fetch exception object.
L<https://trac.parrot.org/parrot/ticket/1406>
@@ -135,6 +174,10 @@ L<https://trac.parrot.org/parrot/ticket/1406>
Ability to get the string name of the current GC core from the interpinfo_s_i.
See r43900 and r43904 for details.
+=item NCI_FB_CB and NCI_FB_UD in iglobals [experimental]
+
+Hooks allowing a runtime-loadable dynamic frame builder.
+
=item loadlib_p_s_p [experimental]
Ability to use non-default dynamic loading behaviour.
@@ -143,6 +186,62 @@ Ability to use non-default dynamic loading behaviour.
L<https://trac.parrot.org/parrot/ticket/876>
+=item new_callback_p_p_p_s [eligible in 2.4]
+
+To be replaced with new_callback_p_p_p_p_s.
+
+L<https://trac.parrot.org/parrot/ticket/1548>
+
+=item dlfunc and new_callback signature string format [eligible in 2.4]
+
+These will be changed to allow more flexibility in types.
+
+L<https://trac.parrot.org/parrot/ticket/1565>
+
+=item find_lex [eligible in 2.4]
+
+find_lex will not throw exception for non-existing lexicals.
+
+L<https://trac.parrot.org/parrot/ticket/1207>
+
+=item substr_s_i_i_s [eligible in 2.4]
+
+This op will be replaced with replace_s_s_i_i_s op to clearly indicate
+semantic. Part of COW removal.
+
+L<https://trac.parrot.org/parrot/ticket/1540>
+
+=item substr_s_s_i_i_s [eligible in 2.4]
+
+This op is deprecated. Use replace_s_s_i_i_s or substr_s_s_i_i (or both)
+instead. Part of COW removal.
+
+L<https://trac.parrot.org/parrot/ticket/1540>
+
+=item inplace string updates. [eligible in 2.4]
+
+All "inplace" string update ops are deprecated. E.g. "chopn_s", etc.
+Part of COW removal.
+
+L<https://trac.parrot.org/parrot/ticket/1540>
+
+=back
+
+=head1 Runcores
+
+=over 4
+
+=item Unused Runcores [eligible in 2.4]
+
+The following Runcores do not appear to be used. Accordingly they will
+be eligible for removal.
+
+CGoto
+CGP
+Switch
+
+L<https://trac.parrot.org/parrot/ticket/1563>
+
=back
=head1 Bytecode
@@ -193,14 +292,6 @@ L<https://trac.parrot.org/parrot/ticket/1103>
L<https://trac.parrot.org/parrot/ticket/907>
-=item Subs marked with C<:vtable>/C<:method> aren't in namespace [eligible in 1.1]
-
-Subs marked with C<:vtable> or C<:method> flags are no longer given a
-namespace entry by default. Use the C<:nsentry> flag to cause this
-to happen.
-
-L<https://trac.parrot.org/parrot/ticket/389>
-
=item C API coding standards cleanup [eligible in 1.1]
All C API functions that aren't currently named according to the
@@ -230,6 +321,13 @@ renamed to Parrot_str_is_null
rename Parrot_string_cstring to Parrot_str_cstring
+=item STRING COW [eligible in 2.4]
+
+COW strings are to be removed. All "inplace" string modification
+functions and all "inplace" string ops are deprecated.
+
+L<https://trac.parrot.org/parrot/ticket/1540>
+
=item Parrot_PMC_* in src/extend.c [eligible in 2.4]
These are duplicates of functions in src/extend_vtable.c. Exceptions:
@@ -353,7 +451,7 @@ L<Trac|http://trac.parrot.org/> is parrot's primary issue tracking system.
=item 2
For an item to be considered experimental, it can B<never> have shipped in
-a stable release without the C<[experimental]> tag; otherwise, it must be
+a supported release without the C<[experimental]> tag; otherwise, it must be
deprecated normally before removal or incompatible change.
=back
View
39 MANIFEST
@@ -1,7 +1,7 @@
# ex: set ro:
# $Id$
#
-# generated by tools/dev/mk_manifest_and_skip.pl Tue Mar 30 15:58:20 2010 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Thu Apr 22 00:02:51 2010 UT
#
# See below for documentation on the format of this file.
#
@@ -235,8 +235,6 @@ config/auto/cpu/ppc/test_gcc_cmpset_c.in []
config/auto/cpu/sun4/auto.pm []
config/auto/cpu/sun4/test_atomic_c.in []
config/auto/cpu/x86_64/auto.pm []
-config/auto/crypto.pm []
-config/auto/crypto/crypto_c.in []
config/auto/ctags.pm []
config/auto/env.pm []
config/auto/env/test_setenv_c.in []
@@ -250,8 +248,6 @@ config/auto/gc.pm []
config/auto/gc/test_c.in []
config/auto/gcc.pm []
config/auto/gcc/test_c.in []
-config/auto/gdbm.pm []
-config/auto/gdbm/gdbm_c.in []
config/auto/gettext.pm []
config/auto/gettext/gettext_c.in []
config/auto/glibc.pm []
@@ -309,13 +305,10 @@ config/gen/config_h/feature_h.in []
config/gen/config_h/has_header_h.in []
config/gen/config_pm.pm []
config/gen/config_pm/Config_pm.in []
-config/gen/config_pm/config_lib_pasm.in []
+config/gen/config_pm/config_lib_pir.in []
config/gen/config_pm/config_pir.in []
config/gen/config_pm/myconfig.in []
config/gen/core_pmcs.pm []
-config/gen/crypto.pm []
-config/gen/crypto/digest_pmc.in []
-config/gen/crypto/digest_t.in []
config/gen/makefiles.pm []
config/gen/makefiles/docs.in []
config/gen/makefiles/dynpmc.in []
@@ -925,15 +918,6 @@ ext/Parrot-Embed/t/pipp.t [test]
ext/Parrot-Embed/tools/check_embed_coverage.pl []
ext/Parrot-Embed/tools/write_typemap.pl []
ext/Parrot-Embed/typemap []
-ext/SQLite3/DBDI.pm []
-ext/SQLite3/DBDI/Driver/SQLite3.pm []
-ext/SQLite3/Makefile.PL []
-ext/SQLite3/Makefile.in []
-ext/SQLite3/SQLite3.pir []
-ext/SQLite3/gen_sqlite3.pl []
-ext/SQLite3/t/test.p6 [test]
-ext/SQLite3/test.pir []
-ext/nqp-rx/.gitignore []
ext/nqp-rx/CREDITS []
ext/nqp-rx/Defines.mak []
ext/nqp-rx/LICENSE []
@@ -1003,6 +987,7 @@ include/parrot/atomic/fallback.h [main]include
include/parrot/atomic/gcc_pcc.h [main]include
include/parrot/atomic/gcc_x86.h [main]include
include/parrot/atomic/sparc.h [main]include
+include/parrot/avl_tree.h [main]include
include/parrot/caches.h [main]include
include/parrot/call.h [main]include
include/parrot/cclass.h [main]include
@@ -1261,7 +1246,6 @@ runtime/parrot/library/SDL/Rect.pir [library]
runtime/parrot/library/SDL/Sprite.pir [library]
runtime/parrot/library/SDL/StopWatch.pir [library]
runtime/parrot/library/SDL/Surface.pir [library]
-runtime/parrot/library/SQLite3.pir [library]
runtime/parrot/library/Stream/Base.pir [library]
runtime/parrot/library/Stream/Combiner.pir [library]
runtime/parrot/library/Stream/Coroutine.pir [library]
@@ -1272,6 +1256,9 @@ runtime/parrot/library/Stream/Replay.pir [library]
runtime/parrot/library/Stream/Sub.pir [library]
runtime/parrot/library/Stream/Writer.pir [library]
runtime/parrot/library/String/Utils.pir [library]
+runtime/parrot/library/TAP/Formatter.pir [library]
+runtime/parrot/library/TAP/Harness.pir [library]
+runtime/parrot/library/TAP/Parser.pir [library]
runtime/parrot/library/Tcl/Glob.pir [library]
runtime/parrot/library/TclLibrary.pir [library]
runtime/parrot/library/Test/Builder.pir [library]
@@ -1290,6 +1277,7 @@ runtime/parrot/library/libpcre.pir [library]
runtime/parrot/library/ncurses.declarations [library]
runtime/parrot/library/ncurses.pasm [library]
runtime/parrot/library/ncurses.pir [library]
+runtime/parrot/library/osutils.pir [library]
runtime/parrot/library/parrotlib.pir [library]
runtime/parrot/library/pcore.pir [library]
runtime/parrot/library/pcre.pir [library]
@@ -1320,7 +1308,6 @@ src/dynpmc/dynlexpad.pmc []
src/dynpmc/ext.pir []
src/dynpmc/foo.pmc []
src/dynpmc/foo2.pmc []
-src/dynpmc/gdbmhash.pmc []
src/dynpmc/main.pasm []
src/dynpmc/pccmethod_test.pmc []
src/dynpmc/rational.pmc []
@@ -1469,7 +1456,6 @@ src/pmc/resizablefloatarray.pmc []
src/pmc/resizableintegerarray.pmc []
src/pmc/resizablepmcarray.pmc []
src/pmc/resizablestringarray.pmc []
-src/pmc/retcontinuation.pmc []
src/pmc/role.pmc []
src/pmc/scalar.pmc []
src/pmc/scheduler.pmc []
@@ -1698,7 +1684,6 @@ t/dynoplibs/obscure.t [test]
t/dynpmc/dynlexpad.t [test]
t/dynpmc/foo.t [test]
t/dynpmc/foo2.t [test]
-t/dynpmc/gdbmhash.t [test]
t/dynpmc/pccmethod_test.t [test]
t/dynpmc/rational.t [test]
t/dynpmc/rotest.t [test]
@@ -1717,6 +1702,7 @@ t/examples/streams.t [test]
t/examples/subs.t [test]
t/examples/tutorial.t [test]
t/harness [test]
+t/harness.pir [test]
t/include/fp_equality.t [test]
t/library/cgi_query_hash.t [test]
t/library/configure.t [test]
@@ -1727,6 +1713,7 @@ t/library/hllmacros.t [test]
t/library/iter.t [test]
t/library/md5.t [test]
t/library/mime_base64.t [test]
+t/library/osutils.t [test]
t/library/p6object.t [test]
t/library/parrotlib.t [test]
t/library/pcre.t [test]
@@ -1737,6 +1724,7 @@ t/library/rand.t [test]
t/library/range.t [test]
t/library/streams.t [test]
t/library/string_utils.t [test]
+t/library/tap_parser.t [test]
t/library/tcl_glob.t [test]
t/library/tcl_lib.t [test]
t/library/test_builder_tester.t [test]
@@ -1913,6 +1901,7 @@ t/pmc/managedstruct.t [test]
t/pmc/multidispatch.t [test]
t/pmc/multisub.t [test]
t/pmc/namespace-old.t [test]
+t/pmc/namespace-subs.t [test]
t/pmc/namespace.t [test]
t/pmc/nci.t [test]
t/pmc/null.t [test]
@@ -1950,7 +1939,6 @@ t/pmc/resizablefloatarray.t [test]
t/pmc/resizableintegerarray.t [test]
t/pmc/resizablepmcarray.t [test]
t/pmc/resizablestringarray.t [test]
-t/pmc/retcontinuation.t [test]
t/pmc/ro.t [test]
t/pmc/role.t [test]
t/pmc/scalar.t [test]
@@ -1991,14 +1979,12 @@ t/steps/auto/backtrace-01.t [test]
t/steps/auto/byteorder-01.t [test]
t/steps/auto/cgoto-01.t [test]
t/steps/auto/cpu-01.t [test]
-t/steps/auto/crypto-01.t [test]
t/steps/auto/ctags-01.t [test]
t/steps/auto/env-01.t [test]
t/steps/auto/format-01.t [test]
t/steps/auto/frames-01.t [test]
t/steps/auto/gc-01.t [test]
t/steps/auto/gcc-01.t [test]
-t/steps/auto/gdbm-01.t [test]
t/steps/auto/gettext-01.t [test]
t/steps/auto/glibc-01.t [test]
t/steps/auto/gmp-01.t [test]
@@ -2194,10 +2180,13 @@ tools/dev/reconfigure.pl [devel]
tools/dev/search-ops.pl []
tools/dev/svnclobber.pl []
tools/dev/symlink.pl []
+tools/dev/tapir.pir []
tools/dev/vgp []
tools/dev/vgp_darwin []
tools/dev/vms-patch []
tools/dev/vtablize.pl []
+tools/docs/book-to-latex.pl []
+tools/docs/filename_and_chapter.pl []
tools/docs/mk_chm.pl []
tools/docs/ops_summary.pl []
tools/docs/write_docs.pl []
View
18 MANIFEST.SKIP
@@ -1,6 +1,6 @@
# ex: set ro:
# $Id$
-# generated by tools/dev/mk_manifest_and_skip.pl Tue Mar 30 17:42:06 2010 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Wed Apr 21 10:28:38 2010 UT
#
# This file should contain a transcript of the svn:ignore properties
# of the directories in the Parrot subversion repository. (Needed for
@@ -65,8 +65,8 @@
^all_cstring\.str/
^blib$
^blib/
-^config_lib\.pasm$
-^config_lib\.pasm/
+^config_lib\.pir$
+^config_lib\.pir/
^cover_db$
^cover_db/
^install_config\.fpmc$
@@ -131,6 +131,10 @@
^pirc/
^tags$
^tags/
+^tapir$
+^tapir/
+^tapir\..*$
+^tapir\..*/
^temp\.file$
^temp\.file/
^test$
@@ -601,12 +605,20 @@
# generated from svn:ignore of 'runtime/parrot/library/Parrot/'
^runtime/parrot/library/Parrot/.*\.pbc$
^runtime/parrot/library/Parrot/.*\.pbc/
+# generated from svn:ignore of 'runtime/parrot/library/ProfTest/'
+^runtime/parrot/library/ProfTest/.*\.pbc$
+^runtime/parrot/library/ProfTest/.*\.pbc/
+^runtime/parrot/library/ProfTest/.*\.pir$
+^runtime/parrot/library/ProfTest/.*\.pir/
# generated from svn:ignore of 'runtime/parrot/library/Stream/'
^runtime/parrot/library/Stream/.*\.pbc$
^runtime/parrot/library/Stream/.*\.pbc/
# generated from svn:ignore of 'runtime/parrot/library/String/'
^runtime/parrot/library/String/Utils\.pbc$
^runtime/parrot/library/String/Utils\.pbc/
+# generated from svn:ignore of 'runtime/parrot/library/TAP/'
+^runtime/parrot/library/TAP/.*\.pbc$
+^runtime/parrot/library/TAP/.*\.pbc/
# generated from svn:ignore of 'runtime/parrot/library/Tcl/'
^runtime/parrot/library/Tcl/.*\.pbc$
^runtime/parrot/library/Tcl/.*\.pbc/
View
10 MANIFEST.generated
@@ -2,10 +2,10 @@
# 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.2.2.0.dylib [main]lib
+blib/lib/libparrot.2.3.0.dylib [main]lib
blib/lib/libparrot.a [main]lib
blib/lib/libparrot.dylib [main]lib
-blib/lib/libparrot.so.2.2.0 [main]lib
+blib/lib/libparrot.so.2.3.0 [main]lib
blib/lib/libparrot.so [main]lib
compilers/data_json/data_json.pbc [data_json]
compilers/json/JSON.pbc [json]
@@ -66,6 +66,8 @@ installable_pbc_to_exe.exe [main]bin
installable_pbc_to_exe [main]bin
installable_parrot-nqp.exe [main]bin
installable_parrot-nqp [main]bin
+installable_tapir.exe [main]bin
+installable_tapir [main]bin
lib/Parrot/Config/Generated.pm [devel]lib
libparrot.dll [main]bin
libparrot.lib [main]bin
@@ -172,6 +174,7 @@ runtime/parrot/library/nqp-rx.pbc [nqp]
runtime/parrot/library/OpenGL_funcs.pir [main]
runtime/parrot/library/OpenGL_funcs.pbc [main]
runtime/parrot/library/OpenGL.pbc [main]
+runtime/parrot/library/osutils.pbc [main]
runtime/parrot/library/P6object.pbc [main]
runtime/parrot/library/P6Regex.pbc [main]
runtime/parrot/library/Parrot/Capture_PIR.pbc [main]
@@ -204,6 +207,9 @@ runtime/parrot/library/Stream/ParrotIO.pbc [main]
runtime/parrot/library/Stream/Replay.pbc [main]
runtime/parrot/library/Stream/Sub.pbc [main]
runtime/parrot/library/Stream/Writer.pbc [main]
+runtime/parrot/library/TAP/Formatter.pbc [main]
+runtime/parrot/library/TAP/Harness.pbc [main]
+runtime/parrot/library/TAP/Parser.pbc [main]
runtime/parrot/library/Tcl/Glob.pbc [main]
runtime/parrot/library/TclLibrary.pbc [main]
runtime/parrot/library/Test/Builder/Test.pbc [main]
View
2  META.yml
@@ -4,7 +4,7 @@
# See http://module-build.sourceforge.net/META-spec-current.html for details.
---
name: parrot
-version: 2.2.0
+version: 2.3.0
author: parrot-dev@lists.parrot.org
abstract: a virtual machine designed for dynamic languages
license: artistic2
View
19 NEWS
@@ -1,22 +1,25 @@
# $Id$
New in 2.3.0
-- Features
- Core
+ Allow passing parameters to the dynamic linker ('dlopen' improved)
+ loadlib opcode added
- + Merge of pcc_hackatron branch
+ + Calling conventions are now much more consistent, and follows natural
+ semantics of handling arguments and return values
+ Recursive make for src/dynpmc removed
-- Compilers
-- Deprecations
-- API
+ + Datatype STRINGNULL for a single Null STRING added
+ + config_lib.pasm replaced with config_lib.pir
- Platforms
+ Improved handling of new compilers
-- Bugfix
-- Tests
+ + Cygwin packages will be updated again with Parrot releases
+ + Fedora packages add desktop files
+ + gzip and bzip2 compressed tar files for releases
- Tools
-- Documentation
+ + tapir executable added; tapir is a TAP test harness
+ + Added TAP options --merge --ignore-exit
- Miscellaneous
+ + 3 month cycle for supported releases
+ + Review and vote of GSoC applications
New in 2.2.0
- Core changes
View
2  PBC_COMPAT
@@ -27,6 +27,8 @@
# please insert tab separated entries at the top of the list
+6.7 2010.04.22 coke remove RetContinuation PMC
+6.6 2010.04.17 bacek add replace op
6.5 2010.03.09 cotto remove cpu_ret op
6.4 2010.03.02 cotto remove prederef__ and reserved
6.3 2010.02.16 whiteknight Add OpLib and Opcode PMCs
View
2  README
@@ -1,4 +1,4 @@
-This is Parrot, version 2.2.0
+This is Parrot, version 2.3.0
------------------------------
Parrot is Copyright (C) 2001-2010, Parrot Foundation.
View
8 README_cygwin.pod
@@ -25,22 +25,22 @@ by your own.
Runtime requirements:
- libreadline6 ncurses libintl8 libgmp3 libgdbm4
+ libreadline6 ncurses libintl8 libgmp3
Optional requirements:
- libicu38 libpq5 openssl
+ libicu38 libpq5
for opengl: w32api opengl or libglut3 xorg-x11-base xorg-x11-bin-dlls
Build requirements:
gcc make perl parrot readline libncurses-devel libgmp-devel
- libgdbm-devel pcre-devel
+ pcre-devel
Optional build requirements:
- libicu-devel openssl-devel
+ libicu-devel
for Cygwin/X opengl: freeglut libglut-devel xorg-x11-devel
View
6 README_win32.pod
@@ -85,15 +85,9 @@ F<lib/icudt.lib>, which contains the standard data in binary form.
The availability of these libraries is checked by Configure.pl.
-B<libcrypto> - a part of libssl / OpenSSL
-L<http://gnuwin32.sourceforge.net/>
-
B<gettext> - library and tools for native language support
L<http://gnuwin32.sourceforge.net/>
-B<gdbm> - GNU database manager
-L<http://gnuwin32.sourceforge.net/>
-
B<GMP> - GNU multiple precision arithmetic library
L<http://developer.berlios.de/projects/win32gmp/>
View
3  RESPONSIBLE_PARTIES
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2009, Parrot Foundation.
+# Copyright (C) 2002-2010, Parrot Foundation.
# $Id$
This is a list of project roles, with a partial list of the folks who have
@@ -62,6 +62,7 @@ Platform Porter Allison Randal (Debian, Ubuntu)
Reini Urban (cygwin)
Will Coleda (MacPorts)
Jerry Gay (Windows)
+ Gerd Pokorra (Fedora)
Patch Monster chromatic
View
2  VERSION
@@ -1 +1 @@
-2.2.0
+2.3.0
View
103 compilers/imcc/imcc.l
@@ -87,6 +87,8 @@ static int expand_macro(PARROT_INTERP, ARGIN(const char *name), ARGMOD(void *yys
static void include_file(PARROT_INTERP, char *file_name, ARGMOD(void *yyscanner));
+static int handle_identifier(PARROT_INTERP, YYSTYPE *valp, ARGIN(const char *id));
+
#define YY_DECL int yylex(YYSTYPE *valp, yyscan_t yyscanner, PARROT_INTERP)
#define YYCHOP() (yytext[--yyleng] = '\0')
@@ -133,7 +135,7 @@ UNICODE {ENC}{ENC}?{DQ_STRING}
STRINGCONSTANT {SQ_STRING}|{DQ_STRING}
SQ_STRING \'[^'\n]*\'
RANKSPEC \[[,]*\]
-EOL \r?\n
+EOL \r?\n
WS [\t\f\r\x1a ]
SP [ ]
@@ -167,7 +169,10 @@ SP [ ]
return 0;
}
+<*>^{WS}* { IMCC_INFO(interp)->line++; }
+
<heredoc1>.*{EOL} {
+ IMCC_INFO(interp)->line++;
IMCC_INFO(interp)->frames->heredoc_rest = mem_sys_strdup(yytext);
BEGIN(heredoc2);
}
@@ -177,7 +182,6 @@ SP [ ]
* arrange them before all wildcard state matches */
/* Newline in the heredoc. Realloc and cat on. */
- IMCC_INFO(interp)->line++;
IMCC_INFO(interp)->heredoc_content =
(char*)mem_sys_realloc(IMCC_INFO(interp)->heredoc_content,
strlen(IMCC_INFO(interp)->heredoc_content) +
@@ -187,6 +191,7 @@ SP [ ]
}
<heredoc2>.* {
+ IMCC_INFO(interp)->line++;
/* Are we at the end of the heredoc? */
if (STREQ(IMCC_INFO(interp)->heredoc_end, yytext)) {
/* End of the heredoc. */
@@ -209,7 +214,7 @@ SP [ ]
yy_pop_state(yyscanner);
yy_scan_string(IMCC_INFO(interp)->frames->heredoc_rest, yyscanner);
- /* the EOF rule will increment the line number; decrement here */
+ /* not sure we need this decrement; more testing needed */
IMCC_INFO(interp)->line--;
return STRINGC;
}
@@ -252,7 +257,6 @@ SP [ ]
<cmt4>.*{EOL} {
yy_pop_state(yyscanner);
- IMCC_INFO(interp)->line++;
}
<INITIAL,emit>{EOL} {
@@ -260,7 +264,6 @@ SP [ ]
BEGIN(INITIAL);
IMCC_INFO(interp)->expect_pasm = 0;
- IMCC_INFO(interp)->line++;
return '\n';
}
@@ -276,7 +279,6 @@ SP [ ]
yy_pop_state(yyscanner);
IMCC_INFO(interp)->expect_pasm = 0;
- IMCC_INFO(interp)->line++;
return '\n';
}
@@ -288,19 +290,20 @@ SP [ ]
}
<INITIAL,emit,macro>^"=" {
+ IMCC_INFO(interp)->line++;
IMCC_INFO(interp)->in_pod = 1;
yy_push_state(pod, yyscanner);
}
<pod>^"=cut"{EOL} {
+ IMCC_INFO(interp)->line++;
IMCC_INFO(interp)->in_pod = 0;
yy_pop_state(yyscanner);
- IMCC_INFO(interp)->line++;
}
-<pod>.* { /*ignore*/ }
+<pod>.* { IMCC_INFO(interp)->line++; }
-<pod>{EOL} { IMCC_INFO(interp)->line++; }
+<pod>{EOL} { /* ignore */ }
<*>".line" return TK_LINE;
<*>".file" return TK_FILE;
@@ -337,7 +340,7 @@ SP [ ]
":instanceof" return SUB_INSTANCE_OF;
":subid" return SUBID;
-".get_result" return RESULT;
+".get_result" return RESULT;
".get_results" return GET_RESULTS;
".yield" return YIELDT;
".set_yield" return SET_YIELD;
@@ -447,6 +450,8 @@ SP [ ]
}
<emit,INITIAL>".macro" {
+ /* the initial whitespace catcher misses this one */
+ IMCC_INFO(interp)->line++;
return read_macro(valp, interp, yyscanner);
}
@@ -485,7 +490,6 @@ SP [ ]
}
<emit,INITIAL>{ID}"$" {
-
if (valp) {
char *label;
size_t len;
@@ -635,34 +639,8 @@ SP [ ]
return REG;
}
-<emit,INITIAL>{ID} {
- if (!IMCC_INFO(interp)->is_def) {
- SymReg *r = find_sym(interp, yytext);
-
- if (r && (r->type & (VTIDENTIFIER|VT_CONSTP))) {
- valp->sr = r;
- return VAR;
- }
-
- if (IMCC_INFO(interp)->cur_unit
- && IMCC_INFO(interp)->cur_unit->instructions
- && (r = IMCC_INFO(interp)->cur_unit->instructions->symregs[0])
- && r->pcc_sub)
- {
- if (((r->pcc_sub->pragma & P_METHOD)
- || (IMCC_INFO(interp)->cur_unit->is_vtable_method))
- && !strcmp(yytext, "self")) {
- valp->sr = mk_ident(interp, "self", 'P');
- IMCC_INFO(interp)->cur_unit->type |= IMC_HAS_SELF;
- return VAR;
- }
- }
- }
-
- valp->s = mem_sys_strdup(yytext);
- return (!IMCC_INFO(interp)->is_def && is_op(interp, valp->s) ? PARROT_OP : IDENTIFIER);
- }
+<emit,INITIAL>{ID} { return handle_identifier(interp, valp, yytext); }
<emit,INITIAL>{WS}+ /* skip */;
@@ -684,10 +662,13 @@ SP [ ]
<INITIAL><<EOF>> yyterminate();
-<macro>".endm" DUP_AND_RET(valp, ENDM);
+<macro>".endm" {
+ /* the initial whitespace catcher misses this one */
+ IMCC_INFO(interp)->line++;
+ DUP_AND_RET(valp, ENDM);
+}
<macro>{WS}*{EOL} {
- IMCC_INFO(interp)->line++;
DUP_AND_RET(valp, '\n');
}
@@ -745,7 +726,6 @@ SP [ ]
return IDENTIFIER;
}
-<macro>^{WS}+ /* skip leading ws */;
<macro>{WS}+ DUP_AND_RET(valp, ' ');
<macro>[SNIP]{DIGITS} DUP_AND_RET(valp, REG);
<macro>"$"[SNIP]{DIGITS} DUP_AND_RET(valp, REG);
@@ -814,6 +794,9 @@ scan_string(macro_frame_t *frame, ARGIN(const char *expansion), void *yyscanner)
frame->s.next = (parser_state_t *)IMCC_INFO(interp)->frames;
IMCC_INFO(interp)->frames = frame;
+ /* start at the effective *starting line* of the macro */
+ IMCC_INFO(interp)->line = frame->s.line - 2;
+
yy_scan_string(expansion, yyscanner);
}
@@ -1069,9 +1052,6 @@ read_macro(YYSTYPE *valp, PARROT_INTERP, void *yyscanner)
IMCC_INFO(interp)->macro_buffer = NULL;
IMCC_INFO(interp)->cur_macro_name = NULL;
- /* the ENDM rule doesn't set the line number */
- IMCC_INFO(interp)->line--;
-
return MACRO;
}
@@ -1232,8 +1212,6 @@ expand_macro(PARROT_INTERP, ARGIN(const char *name), void *yyscanner)
}
}