Permalink
Browse files

Merge branch 'ops_pct' back to trunk.

git-svn-id: https://svn.parrot.org/parrot/trunk@46922 d31e2699-5ff4-0310-a27c-f18f2fbe73fe
  • Loading branch information...
1 parent fb5d6d9 commit 762a0f20396cf052d7d1cace2b2b947a1be04ced @bacek bacek committed May 23, 2010
Showing with 37,564 additions and 7,910 deletions.
  1. +31 −30 MANIFEST
  2. +31 −1 MANIFEST.SKIP
  3. +3 −2 MANIFEST.generated
  4. +24 −0 compilers/opsc/Defines.mak
  5. +50 −0 compilers/opsc/Rules.mak
  6. +14 −0 compilers/opsc/TODO
  7. +1 −0 compilers/opsc/gen/Ops/Compiler/IGNOREME
  8. 0 compilers/opsc/gen/Ops/Trans/IGNOREME
  9. +113 −0 compilers/opsc/ops2c.nqp
  10. +25 −0 compilers/opsc/opsc.pir
  11. +17 −0 compilers/opsc/src/Ops/Compiler.pm
  12. +413 −0 compilers/opsc/src/Ops/Compiler/Actions.pm
  13. +147 −0 compilers/opsc/src/Ops/Compiler/Grammar.pm
  14. +444 −0 compilers/opsc/src/Ops/Emitter.pm
  15. +331 −0 compilers/opsc/src/Ops/File.pm
  16. +392 −0 compilers/opsc/src/Ops/Op.pm
  17. +234 −0 compilers/opsc/src/Ops/OpLib.pm
  18. +108 −0 compilers/opsc/src/Ops/Renumberer.pm
  19. +58 −0 compilers/opsc/src/Ops/Trans.pm
  20. +367 −0 compilers/opsc/src/Ops/Trans/C.pm
  21. +196 −0 compilers/opsc/src/builtins.pir
  22. +1 −1 compilers/pct/Rules.mak
  23. +0 −1 config/auto/extra_nci_thunks.pm
  24. +193 −221 config/gen/makefiles/root.in
  25. +3 −4 docs/tests.pod
  26. +1,303 −0 include/parrot/oplib/core_ops.h
  27. +1,300 −0 include/parrot/oplib/ops.h
  28. +1,226 −0 include/parrot/opsenum.h
  29. +4 −0 lib/Parrot/Distribution.pm
  30. +2 −1 lib/Parrot/Harness/DefaultTests.pm
  31. +2 −2 lib/Parrot/Ops2c/Utils.pm
  32. +12 −0 lib/Parrot/Test/Pod.pm
  33. +14 −60 runtime/parrot/library/distutils.pir
  34. +6 −6 src/dynoplibs/Rules.in
  35. +29,804 −0 src/ops/core_ops.c
  36. +1 −1 src/ops/var.ops
  37. +1 −0 src/pmc/nci.pmc
  38. +2 −0 t/codingstd/linelength.t
  39. +2 −1 t/codingstd/perlcritic.t
  40. +205 −0 t/compilers/opsc/01-parse.t
  41. +90 −0 t/compilers/opsc/02-parse-all-ops.t
  42. +110 −0 t/compilers/opsc/03-past.t
  43. +36 −0 t/compilers/opsc/04-op.t
  44. +28 −0 t/compilers/opsc/05-oplib.t
  45. +45 −0 t/compilers/opsc/06-opsfile.t
  46. +129 −0 t/compilers/opsc/07-emitter.t
  47. +39 −0 t/compilers/opsc/common.pir
  48. +1 −1 t/harness.pir
  49. +0 −105 t/op/01-parse_ops.t
  50. +0 −197 t/tools/ops2cutils/01-new.t
  51. +0 −146 t/tools/ops2cutils/02-usage.t
  52. +0 −131 t/tools/ops2cutils/03-print_c_header_file.t
  53. +0 −120 t/tools/ops2cutils/04-print_c_source_top.t
  54. +0 −123 t/tools/ops2cutils/05-print_c_source_bottom.t
  55. +0 −157 t/tools/ops2cutils/06-dynamic.t
  56. +0 −156 t/tools/ops2cutils/07-make_incdir.t
  57. +0 −118 t/tools/ops2cutils/08-nolines.t
  58. +0 −128 t/tools/ops2cutils/09-dynamic_nolines.t
  59. +0 −131 t/tools/ops2cutils/10-print_c_source_file.t
  60. +0 −185 t/tools/ops2cutils/testlib/GenerateCore.pm
  61. +0 −66 t/tools/ops2pm/00-qualify.t
  62. +0 −64 t/tools/ops2pm/01-ops2pm.t
  63. +0 −106 t/tools/ops2pm/02-usage.t
  64. +0 −99 t/tools/ops2pm/03-new.t
  65. +0 −304 t/tools/ops2pm/04-prepare_ops.t
  66. +0 −138 t/tools/ops2pm/05-renum_op_map_file.t
  67. +0 −371 t/tools/ops2pm/06-load_op_map_files.t
  68. +0 −117 t/tools/ops2pm/07-no_ops_skip.t
  69. +0 −353 t/tools/ops2pm/08-sort_ops.t
  70. +0 −215 t/tools/ops2pm/09-prepare_real_ops.t
  71. +0 −212 t/tools/ops2pm/10-print_module.t
  72. +0 −144 t/tools/ops2pm/11-print_h.t
  73. +0 −353 t/tools/ops2pm/samples/bit_ops.original
  74. +0 −333 t/tools/ops2pm/samples/bit_ops.second
  75. +0 −1,326 t/tools/ops2pm/samples/core_ops.original
  76. +0 −1,223 t/tools/ops2pm/samples/ops_num.original
  77. +0 −316 t/tools/ops2pm/samples/pic_ops.original
  78. +6 −141 tools/build/ops2c.pl
View
@@ -1,7 +1,7 @@
# ex: set ro:
# $Id$
#
-# generated by tools/dev/mk_manifest_and_skip.pl Sun May 23 08:19:12 2010 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Sun May 23 18:01:00 2010 UT
#
# See below for documentation on the format of this file.
#
@@ -62,6 +62,24 @@ compilers/imcc/sets.h [imcc]
compilers/imcc/symreg.c [imcc]
compilers/imcc/symreg.h [imcc]
compilers/imcc/unit.h [imcc]
+compilers/opsc/Defines.mak [opsc]
+compilers/opsc/Rules.mak [opsc]
+compilers/opsc/TODO [opsc]
+compilers/opsc/gen/Ops/Compiler/IGNOREME [opsc]
+compilers/opsc/gen/Ops/Trans/IGNOREME [opsc]
+compilers/opsc/ops2c.nqp [opsc]
+compilers/opsc/opsc.pir [opsc]
+compilers/opsc/src/Ops/Compiler.pm [opsc]
+compilers/opsc/src/Ops/Compiler/Actions.pm [opsc]
+compilers/opsc/src/Ops/Compiler/Grammar.pm [opsc]
+compilers/opsc/src/Ops/Emitter.pm [opsc]
+compilers/opsc/src/Ops/File.pm [opsc]
+compilers/opsc/src/Ops/Op.pm [opsc]
+compilers/opsc/src/Ops/OpLib.pm [opsc]
+compilers/opsc/src/Ops/Renumberer.pm [opsc]
+compilers/opsc/src/Ops/Trans.pm [opsc]
+compilers/opsc/src/Ops/Trans/C.pm [opsc]
+compilers/opsc/src/builtins.pir [opsc]
compilers/pct/Defines.mak [pct]
compilers/pct/PCT.pir [pct]
compilers/pct/README.pod []doc
@@ -963,6 +981,9 @@ include/parrot/oo.h [main]include
include/parrot/oo_private.h [main]include
include/parrot/op.h [main]include
include/parrot/oplib.h [main]include
+include/parrot/oplib/core_ops.h [main]include
+include/parrot/oplib/ops.h [main]include
+include/parrot/opsenum.h [main]include
include/parrot/packfile.h [main]include
include/parrot/parrot.h [main]include
include/parrot/platform_interface.h [main]include
@@ -1312,6 +1333,7 @@ src/oo.c []
src/ops/bit.ops []
src/ops/cmp.ops []
src/ops/core.ops []
+src/ops/core_ops.c []
src/ops/debug.ops []
src/ops/experimental.ops []
src/ops/io.ops []
@@ -1521,6 +1543,14 @@ t/compilers/imcc/syn/subflags.t [test]
t/compilers/imcc/syn/symbols.t [test]
t/compilers/imcc/syn/tail.t [test]
t/compilers/imcc/syn/veracity.t [test]
+t/compilers/opsc/01-parse.t [test]
+t/compilers/opsc/02-parse-all-ops.t [test]
+t/compilers/opsc/03-past.t [test]
+t/compilers/opsc/04-op.t [test]
+t/compilers/opsc/05-oplib.t [test]
+t/compilers/opsc/06-opsfile.t [test]
+t/compilers/opsc/07-emitter.t [test]
+t/compilers/opsc/common.pir [test]
t/compilers/pct/complete_workflow.t [test]
t/compilers/pct/past.t [test]
t/compilers/pct/pct_hllcompiler.t [test]
@@ -1741,7 +1771,6 @@ t/oo/subclass.t [test]
t/oo/vtableoverride.t [test]
t/op/00ff-dos.t [test]
t/op/00ff-unix.t [test]
-t/op/01-parse_ops.t [test]
t/op/64bit.t [test]
t/op/annotate-old.t [test]
t/op/annotate.t [test]
@@ -2034,34 +2063,6 @@ t/tools/install/testlib/src/ops/ops.num [test]
t/tools/install/testlib/src/pmc/pmc_object.h [test]
t/tools/install/testlib/tools/build/ops2c.pl [test]
t/tools/install/testlib/vtable.dump [test]
-t/tools/ops2cutils/01-new.t [test]
-t/tools/ops2cutils/02-usage.t [test]
-t/tools/ops2cutils/03-print_c_header_file.t [test]
-t/tools/ops2cutils/04-print_c_source_top.t [test]
-t/tools/ops2cutils/05-print_c_source_bottom.t [test]
-t/tools/ops2cutils/06-dynamic.t [test]
-t/tools/ops2cutils/07-make_incdir.t [test]
-t/tools/ops2cutils/08-nolines.t [test]
-t/tools/ops2cutils/09-dynamic_nolines.t [test]
-t/tools/ops2cutils/10-print_c_source_file.t [test]
-t/tools/ops2cutils/testlib/GenerateCore.pm [test]
-t/tools/ops2pm/00-qualify.t [test]
-t/tools/ops2pm/01-ops2pm.t [test]
-t/tools/ops2pm/02-usage.t [test]
-t/tools/ops2pm/03-new.t [test]
-t/tools/ops2pm/04-prepare_ops.t [test]
-t/tools/ops2pm/05-renum_op_map_file.t [test]
-t/tools/ops2pm/06-load_op_map_files.t [test]
-t/tools/ops2pm/07-no_ops_skip.t [test]
-t/tools/ops2pm/08-sort_ops.t [test]
-t/tools/ops2pm/09-prepare_real_ops.t [test]
-t/tools/ops2pm/10-print_module.t [test]
-t/tools/ops2pm/11-print_h.t [test]
-t/tools/ops2pm/samples/bit_ops.original [test]
-t/tools/ops2pm/samples/bit_ops.second [test]
-t/tools/ops2pm/samples/core_ops.original [test]
-t/tools/ops2pm/samples/ops_num.original [test]
-t/tools/ops2pm/samples/pic_ops.original [test]
t/tools/parrot_debugger.t [test]
t/tools/pbc_disassemble.t [test]
t/tools/pbc_dump.t [test]
View
@@ -1,6 +1,6 @@
# ex: set ro:
# $Id$
-# generated by tools/dev/mk_manifest_and_skip.pl Sun May 23 08:10:47 2010 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Sat May 22 04:46:14 2010 UT
#
# This file should contain a transcript of the svn:ignore properties
# of the directories in the Parrot subversion repository. (Needed for
@@ -81,6 +81,14 @@
^miniparrot/
^myconfig$
^myconfig/
+^ops2c$
+^ops2c/
+^ops2c\.c$
+^ops2c\.c/
+^ops2c\.pbc$
+^ops2c\.pbc/
+^ops2c\.pir$
+^ops2c\.pir/
^parrot$
^parrot/
^parrot-nqp$
@@ -188,6 +196,22 @@
^compilers/imcc/imcparser\.h/
^compilers/imcc/imcparser\.output$
^compilers/imcc/imcparser\.output/
+# generated from svn:ignore of 'compilers/opsc/'
+^compilers/opsc/opsc\.pbc$
+^compilers/opsc/opsc\.pbc/
+# generated from svn:ignore of 'compilers/opsc/gen/Ops/'
+^compilers/opsc/gen/Ops/ $
+^compilers/opsc/gen/Ops/ /
+^compilers/opsc/gen/Ops/.*\.pir$
+^compilers/opsc/gen/Ops/.*\.pir/
+# generated from svn:ignore of 'compilers/opsc/gen/Ops/Compiler/'
+^compilers/opsc/gen/Ops/Compiler/Actions\.pir$
+^compilers/opsc/gen/Ops/Compiler/Actions\.pir/
+^compilers/opsc/gen/Ops/Compiler/Grammar\.pir$
+^compilers/opsc/gen/Ops/Compiler/Grammar\.pir/
+# generated from svn:ignore of 'compilers/opsc/gen/Ops/Trans/'
+^compilers/opsc/gen/Ops/Trans/C\.pir$
+^compilers/opsc/gen/Ops/Trans/C\.pir/
# generated from svn:ignore of 'compilers/pct/src/PAST/'
^compilers/pct/src/PAST/.*\.pbc$
^compilers/pct/src/PAST/.*\.pbc/
@@ -428,6 +452,12 @@
# generated from svn:ignore of 'ext/Parrot-Embed/t/'
^ext/Parrot-Embed/t/.*\.pbc$
^ext/Parrot-Embed/t/.*\.pbc/
+# generated from svn:ignore of 'ext/nqp-rx/src/gen/'
+^ext/nqp-rx/src/gen/settings\.pir$
+^ext/nqp-rx/src/gen/settings\.pir/
+# generated from svn:ignore of 'ext/nqp-rx/src/stage0/'
+^ext/nqp-rx/src/stage0/nqp-setting\.pir$
+^ext/nqp-rx/src/stage0/nqp-setting\.pir/
# generated from svn:ignore of 'include/parrot/'
^include/parrot/.*\.tmp$
^include/parrot/.*\.tmp/
View
@@ -125,6 +125,8 @@ include/pmc/pmc_timer.h [devel]include
include/pmc/pmc_undef.h [devel]include
include/pmc/pmc_unmanagedstruct.h [devel]include
install_config.fpmc [main]lib
+installable_ops2c [main]bin
+installable_ops2c.exe [main]bin
installable_parrot [main]bin
installable_parrot-nqp [main]bin
installable_parrot-nqp.exe [main]bin
@@ -145,7 +147,6 @@ installable_pbc_merge.exe [main]bin
installable_pbc_to_exe [main]bin
installable_pbc_to_exe.exe [main]bin
lib/Parrot/Config/Generated.pm [devel]lib
-lib/Parrot/OpLib/core.pm [devel]lib
lib/Parrot/PMC.pm [devel]lib
lib/Parrot/Pmc2c/PCCMETHOD_BITS.pm [devel]lib
libparrot.dll [main]bin
@@ -272,7 +273,6 @@ 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/TGE.pbc [tge]
runtime/parrot/library/Tcl/Glob.pbc [main]
runtime/parrot/library/TclLibrary.pbc [main]
runtime/parrot/library/Test/Builder.pbc [main]
@@ -294,6 +294,7 @@ runtime/parrot/library/libpcre.pbc [main]
runtime/parrot/library/ncurses.pbc [main]
runtime/parrot/library/nqp-rx.pbc [nqp]
runtime/parrot/library/nqp-setting.pbc [nqp]
+runtime/parrot/library/opsc.pbc [main]
runtime/parrot/library/osutils.pbc [main]
runtime/parrot/library/parrotlib.pbc [main]
runtime/parrot/library/pcore.pbc [main]
View
@@ -0,0 +1,24 @@
+OPSC_DIR = compilers/opsc
+
+OPSC_SOURCES_GENERATED = \
+ $(OPSC_DIR)/gen/Ops/Compiler.pir \
+ $(OPSC_DIR)/gen/Ops/Compiler/Actions.pir \
+ $(OPSC_DIR)/gen/Ops/Compiler/Grammar.pir \
+ $(OPSC_DIR)/gen/Ops/Emitter.pir \
+ $(OPSC_DIR)/gen/Ops/Trans.pir \
+ $(OPSC_DIR)/gen/Ops/Trans/C.pir \
+ $(OPSC_DIR)/gen/Ops/Op.pir \
+ $(OPSC_DIR)/gen/Ops/OpLib.pir \
+ $(OPSC_DIR)/gen/Ops/File.pir \
+ $(OPSC_DIR)/gen/Ops/Renumberer.pir
+
+OPSC_SOURCES = \
+ $(OPSC_DIR)/opsc.pir \
+ $(OPSC_DIR)/src/builtins.pir \
+ $(OPSC_SOURCES_GENERATED)
+
+OPSC_CLEANUPS = \
+ $(OPSC_DIR)/opsc.pbc \
+ $(LIBRARY_DIR)/opsc.pbc \
+ $(OPSC_SOURCES_GENERATED)
+
View
@@ -0,0 +1,50 @@
+$(LIBRARY_DIR)/opsc.pbc: $(NQP_RX) $(OPSC_SOURCES) $(NQPRX_LIB_SETTING)
+ $(PARROT) -o $(LIBRARY_DIR)/opsc.pbc $(OPSC_DIR)/opsc.pir
+
+$(OPSC_DIR)/gen/Ops/Compiler.pir: $(OPSC_DIR)/src/Ops/Compiler.pm $(NQP_RX)
+ $(NQP_RX) --target=pir --output=$@ $(OPSC_DIR)/src/Ops/Compiler.pm
+
+$(OPSC_DIR)/gen/Ops/Compiler/Actions.pir: $(OPSC_DIR)/src/Ops/Compiler/Actions.pm $(NQP_RX)
+ $(NQP_RX) --target=pir --output=$@ $(OPSC_DIR)/src/Ops/Compiler/Actions.pm
+
+$(OPSC_DIR)/gen/Ops/Compiler/Grammar.pir: $(OPSC_DIR)/src/Ops/Compiler/Grammar.pm $(NQP_RX)
+ $(NQP_RX) --target=pir --output=$@ $(OPSC_DIR)/src/Ops/Compiler/Grammar.pm
+
+$(OPSC_DIR)/gen/Ops/Emitter.pir: $(OPSC_DIR)/src/Ops/Emitter.pm $(NQP_RX)
+ $(NQP_RX) --target=pir --output=$@ $(OPSC_DIR)/src/Ops/Emitter.pm
+
+$(OPSC_DIR)/gen/Ops/File.pir: $(OPSC_DIR)/src/Ops/File.pm $(NQP_RX)
+ $(NQP_RX) --target=pir --output=$@ $(OPSC_DIR)/src/Ops/File.pm
+
+$(OPSC_DIR)/gen/Ops/Op.pir: $(OPSC_DIR)/src/Ops/Op.pm $(NQP_RX)
+ $(NQP_RX) --target=pir --output=$@ $(OPSC_DIR)/src/Ops/Op.pm
+
+$(OPSC_DIR)/gen/Ops/OpLib.pir: $(OPSC_DIR)/src/Ops/OpLib.pm $(NQP_RX)
+ $(NQP_RX) --target=pir --output=$@ $(OPSC_DIR)/src/Ops/OpLib.pm
+
+$(OPSC_DIR)/gen/Ops/Trans.pir: $(OPSC_DIR)/src/Ops/Trans.pm $(NQP_RX)
+ $(NQP_RX) --target=pir --output=$@ $(OPSC_DIR)/src/Ops/Trans.pm
+
+$(OPSC_DIR)/gen/Ops/Trans/C.pir: $(OPSC_DIR)/src/Ops/Trans/C.pm $(NQP_RX)
+ $(NQP_RX) --target=pir --output=$@ $(OPSC_DIR)/src/Ops/Trans/C.pm
+
+$(OPSC_DIR)/gen/Ops/Renumberer.pir: $(OPSC_DIR)/src/Ops/Renumberer.pm $(NQP_RX)
+ $(NQP_RX) --target=pir --output=$@ $(OPSC_DIR)/src/Ops/Renumberer.pm
+
+# Target to force rebuild opsc from main Makefile
+$(OPSC_DIR)/ops2c.nqp: $(LIBRARY_DIR)/opsc.pbc
+
+$(OPS2C): $(OPSC_DIR)/ops2c.nqp $(LIBRARY_DIR)/opsc.pbc $(NQP_RX) $(PBC_TO_EXE)
+ $(NQP_RX) --target=pir $(OPSC_DIR)/ops2c.nqp >ops2c.pir
+ $(PARROT) -o ops2c.pbc ops2c.pir
+ $(PBC_TO_EXE) ops2c.pbc
+
+$(INSTALLABLEOPS2C): $(OPS2C) src/install_config$(O)
+ $(PBC_TO_EXE) ops2c.pbc --install
+
+opsc: $(LIBRARY_DIR)/opsc.pbc
+
+# Local variables:
+# mode: makefile
+# End:
+# vim: ft=make:
View
@@ -0,0 +1,14 @@
+Simple todo.
+
+Required for initial self-hosting:
+
+ * NONE! We are selfhosted now!
+
+Required for full implementation:
+ * Handling #line directives.
+ * A LOT OF DOCUMENTATION.
+ * Add tests for Trans::C independent from 06-emitter.t
+ * Add tests for dynamic mode of Emitter.
+
+Nice to have:
+ * Profiling and performance tuning of ops parsing (we need pmichaud).
@@ -0,0 +1 @@
+I just dummy file. Please ignore me. Please...
No changes.
Oops, something went wrong.

0 comments on commit 762a0f2

Please sign in to comment.