mirah 0.1.2-java → 0.1.3-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/History.txt +225 -0
- data/Rakefile +108 -315
- data/TODO.md +100 -0
- data/bin/bundler +16 -0
- data/bin/rake +16 -0
- data/dist/mirahc.jar +0 -0
- data/examples/appengine/Readme +0 -1
- data/examples/literals.mirah +17 -0
- data/examples/macros/string_each_char.mirah +1 -1
- data/lib/mirah.rb +11 -21
- data/lib/mirah/transform/transformer.rb +1 -2
- data/lib/mirah/util/class_loader.rb +1 -1
- data/lib/mirah/util/logging.rb +0 -63
- data/lib/mirah/util/process_errors.rb +1 -0
- data/lib/mirah/version.rb +1 -1
- data/{examples/simple_class.mirah~ → test/artifacts/jar_test.rb} +7 -11
- data/{lib/mirah/commands.rb → test/artifacts/jruby_test.rb} +8 -5
- data/test/core/typer_test.rb +29 -11
- data/test/core/util/argument_processor_test.rb +24 -23
- data/test/core/util/class_loader_test.rb +7 -4
- data/test/core/util/{compilation_state_test.rb → jvm_version_test.rb} +20 -16
- data/test/fixtures/org/foo/ImplicitClassRetAnno.java +4 -0
- data/test/fixtures/org/foo/IntAnno.java +9 -0
- data/test/jvm/annotations_test.rb +11 -11
- data/test/jvm/blocks_test.rb +16 -12
- data/test/jvm/constructors_test.rb +8 -8
- data/test/jvm/enumerable_test.rb +48 -24
- data/test/jvm/generics_test.rb +3 -7
- data/test/jvm/import_test.rb +14 -0
- data/test/jvm/interface_test.rb +9 -24
- data/test/jvm/jvm_commands_test.rb +22 -4
- data/test/jvm/jvm_compiler_test.rb +124 -79
- data/test/jvm/list_extensions_test.rb +1 -1
- data/test/jvm/macros_test.rb +67 -14
- data/test/jvm/main_method_test.rb +1 -1
- data/test/jvm/new_backend_test_helper.rb +100 -3
- data/{lib/mirah/jvm/types/bitescript_ext.rb → test/jvm/static_fields_test.rb} +22 -21
- data/test/mirrors/base_type_test.rb +4 -3
- data/test/mirrors/bytecode_mirror_test.rb +35 -15
- data/test/mirrors/generics_test.rb +14 -5
- data/test/mirrors/member_test.rb +2 -1
- data/test/mirrors/method_lookup_test.rb +18 -6
- data/test/mirrors/mirrors_test.rb +87 -20
- data/test/mirrors/simple_async_mirror_loader_test.rb +7 -3
- data/test/mirrors/simple_mirror_loader_test.rb +5 -5
- data/test/test_helper.rb +25 -1
- metadata +18 -78
- data/bin/mirahp +0 -27
- data/bin/mirahp.cmd +0 -16
- data/examples/Fib.class +0 -0
- data/javalib/mirah-bootstrap.jar +0 -0
- data/javalib/mirah-builtins.jar +0 -0
- data/javalib/mirah-compiler.jar +0 -0
- data/javalib/mirah-mirrors.jar +0 -0
- data/javalib/mirah-newast-transitional.jar +0 -0
- data/javalib/mirah-parser.jar +0 -0
- data/javalib/mirah-util.jar +0 -0
- data/lib/mirah/ast.rb +0 -43
- data/lib/mirah/ast/scope.rb +0 -262
- data/lib/mirah/commands/base.rb +0 -59
- data/lib/mirah/commands/compile.rb +0 -39
- data/lib/mirah/commands/parse.rb +0 -36
- data/lib/mirah/commands/run.rb +0 -78
- data/lib/mirah/generator.rb +0 -150
- data/lib/mirah/jvm/compiler.rb +0 -50
- data/lib/mirah/jvm/compiler/base.rb +0 -421
- data/lib/mirah/jvm/compiler/jvm_bytecode.rb +0 -1194
- data/lib/mirah/jvm/method_lookup.rb +0 -307
- data/lib/mirah/jvm/types.rb +0 -45
- data/lib/mirah/jvm/types/array_type.rb +0 -60
- data/lib/mirah/jvm/types/ast_ext.rb +0 -31
- data/lib/mirah/jvm/types/basic_types.rb +0 -41
- data/lib/mirah/jvm/types/block_type.rb +0 -15
- data/lib/mirah/jvm/types/boolean.rb +0 -70
- data/lib/mirah/jvm/types/enumerable.rb +0 -80
- data/lib/mirah/jvm/types/extensions.rb +0 -110
- data/lib/mirah/jvm/types/factory.rb +0 -830
- data/lib/mirah/jvm/types/floats.rb +0 -99
- data/lib/mirah/jvm/types/generic_type.rb +0 -72
- data/lib/mirah/jvm/types/implicit_nil_type.rb +0 -29
- data/lib/mirah/jvm/types/integers.rb +0 -131
- data/lib/mirah/jvm/types/interface_definition.rb +0 -20
- data/lib/mirah/jvm/types/intrinsics.rb +0 -385
- data/lib/mirah/jvm/types/literals.rb +0 -89
- data/lib/mirah/jvm/types/meta_type.rb +0 -54
- data/lib/mirah/jvm/types/methods.rb +0 -946
- data/lib/mirah/jvm/types/null_type.rb +0 -39
- data/lib/mirah/jvm/types/number.rb +0 -184
- data/lib/mirah/jvm/types/primitive_type.rb +0 -76
- data/lib/mirah/jvm/types/source_mirror.rb +0 -274
- data/lib/mirah/jvm/types/type.rb +0 -311
- data/lib/mirah/jvm/types/type_definition.rb +0 -72
- data/lib/mirah/jvm/types/void_type.rb +0 -19
- data/lib/mirah/util/compilation_state.rb +0 -60
- data/test/core/commands_test.rb +0 -89
- data/test/core/generator_test.rb +0 -26
- data/test/fixtures/org/foo/LowerCaseInnerClass$inner.class +0 -0
- data/test/fixtures/org/foo/LowerCaseInnerClass.class +0 -0
- data/test/jvm/bytecode_test_helper.rb +0 -193
- data/test/jvm/factory_test.rb +0 -28
- data/test/jvm/java_typer_test.rb +0 -283
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9c43543a6d373e0cc8f1dbc80ba79635dbe8ac93
|
|
4
|
+
data.tar.gz: b26f831bf81940b7268657bd1d8839e17dae25b6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: bb72ed358c9b843a5dfcc10f0f452f434fa332c35771e725822ef973a622862a75b8b501f7e325e51832e92aad0dd5edf15df71b3d4350b9db6c911013cbf61e
|
|
7
|
+
data.tar.gz: 8ad01e2fcb6ebdebb56bc1c1d6e8d30fb4b78fe5e4fcf0273ed62a0f7eb5f8020379a63637ee5e8c6d43b72c4fd7ef7f820bb647e4e2bfa681a9d244a93ad070
|
data/History.txt
CHANGED
|
@@ -1,3 +1,228 @@
|
|
|
1
|
+
|
|
2
|
+
=== 0.1.3 Metacircularity: Achieved / 2014-08-06
|
|
3
|
+
|
|
4
|
+
5b1454c bump parser w/ java 7 jar
|
|
5
|
+
8c0be9d de-SNAPSHOT/dev ify versions
|
|
6
|
+
0bb1553 update parser
|
|
7
|
+
1c90452 update NOTICE
|
|
8
|
+
2ade81b if the type params are unconstrained wildcards, consider them resolved
|
|
9
|
+
347c633 allow jruby-head build to fail
|
|
10
|
+
a6bb171 add 1.8 - 1.8 to travis
|
|
11
|
+
9019478 fix failing generics test
|
|
12
|
+
d2c8ba2 fix test workaround for asm version
|
|
13
|
+
e5133d5 formatting + while -> each in mirah_arguments
|
|
14
|
+
7f37cd4 add another guard for a bundler require
|
|
15
|
+
0d5cdd8 add COPYING to zip dist
|
|
16
|
+
48298cf add place to put artifact tests, w/ happy path examples
|
|
17
|
+
44955db bump copyright year in Rakefile
|
|
18
|
+
447a878 begin rescue load error hack
|
|
19
|
+
10dfe71 maybe a well placed rescue'll fix jruby-head build
|
|
20
|
+
02b0fcd skip tests that will NPE on JRuby 1.7.13
|
|
21
|
+
3f0114c forgot java.lang in last change. Oops
|
|
22
|
+
2364325 always compile mirahc for 1.7 or lower
|
|
23
|
+
9d482e5 rm 1.8 -> 1.7 bytecode since 1.8 is available in new asm dep
|
|
24
|
+
0691433 try moving bundler/setup require
|
|
25
|
+
9c53cda always get latest SNAPSHOT
|
|
26
|
+
52d850c bump snapshot to download
|
|
27
|
+
c0a7c57 ignore downloaded asm lib jar
|
|
28
|
+
e454796 add asm license to a file that's included in the compiler jar
|
|
29
|
+
e7d6153 update asm to 5.0.3 for java 8 support & awesomeness
|
|
30
|
+
c1537a7 oops. Fix missed escape in gemspec
|
|
31
|
+
27567c6 rm some refs to old jars + depend only on mirahc.jar in gem
|
|
32
|
+
d934870 clean up typer a little
|
|
33
|
+
ba8acf7 missed a place where there should be a require test_helper
|
|
34
|
+
d88d880 ensure -V overrides the default silent for run
|
|
35
|
+
71e6fa8 silence logger for run commands
|
|
36
|
+
a2abfb7 update parser to one that can parse the parser
|
|
37
|
+
6480725 add consistent sorting to tool sources
|
|
38
|
+
e02ca0b depend on a good snapshot in sonatype
|
|
39
|
+
fe339bf more Rakefile cruft. Now dist task shouldn't error out
|
|
40
|
+
f96626b add some whitespace
|
|
41
|
+
442519b remove using confusing space char literal that doesn't parse
|
|
42
|
+
b3bd746 merge unquotes in block args before constructing the block future.
|
|
43
|
+
3ff0d0a Revert "use latest snapshot as the compiler to bootstrap with"
|
|
44
|
+
85bdbd3 add note about pushing snapshots to maven instructions
|
|
45
|
+
6f9e336 rm apparently unused jar
|
|
46
|
+
7036f6b ignore the downloaded bootstrap compiler
|
|
47
|
+
96c563a use latest snapshot as the compiler to bootstrap with
|
|
48
|
+
d7d14ec add Nick to the author list in the gemspec
|
|
49
|
+
638c47f rm mirahp from gemspec as it's gone
|
|
50
|
+
46f622b clean up unused / needed portions of rakefile
|
|
51
|
+
3c4cc9a refer to jruby exception w/ string instead of class obj
|
|
52
|
+
be3fc9f remove commented requires
|
|
53
|
+
7aa9091 remove references to bitescript
|
|
54
|
+
5cd2e93 add tests for JvmVersion
|
|
55
|
+
a8d3f2d have gem depend on dist/mirahc.jar
|
|
56
|
+
1b51fe7 Merge pull request #252 from KeenS/master
|
|
57
|
+
16f7623 more literals
|
|
58
|
+
15ca101 remove dependency on bitescript, rm CompilationState, set max bytecode version to 1.7
|
|
59
|
+
aa282e5 Squashed commit of the following:
|
|
60
|
+
fe7bd6c add literal examples
|
|
61
|
+
487d737 Merge branch 'shannah-master'
|
|
62
|
+
f9100a2 Added wrapper around JVMScope.import method so that it can be called from java. import is a reserved word in java.
|
|
63
|
+
9ae690f Fixed stack overflow error because of two static compile and object compile method implemented in Mirahc. https://github.com/mirah/mirah/issues/250
|
|
64
|
+
b981113 use 1.7 target when running on 1.8 for now
|
|
65
|
+
6013668 1.8 isn't supported in the asm version we're currently using. duh
|
|
66
|
+
222f5ed exclude jdk7 targeting 8 from build matrix
|
|
67
|
+
b334a0a update travis w/ java target version builds+jruby head vs 19 mode
|
|
68
|
+
0b4cdbd make test target JVM version configable by MIRAH_TEST_JVM_VERSION env var
|
|
69
|
+
f1f859d add some whitespace to Rakefile
|
|
70
|
+
2b319e8 update test_local_field_conflict to test_local_method_conflict
|
|
71
|
+
f02d9b1 rm unused local in ProxyNode
|
|
72
|
+
3677f5e Merge branch 'new_bootstrap' of git://github.com/ribrdb/mirah into ribrdb-new_bootstrap
|
|
73
|
+
5dbd5b9 Merge branch 'master' into bootstrap_with_new_compiler
|
|
74
|
+
89d4447 allow unquoted block args, both with and without pipes
|
|
75
|
+
39d7946 whitespace in examples/macros/string_each_char.mirah
|
|
76
|
+
fe16b3f add unary negation test
|
|
77
|
+
b283dd8 add position based content lookup to typer for debugging
|
|
78
|
+
b2cb3f0 add some more logging around redeclaring types
|
|
79
|
+
dc9f253 fix nested error descriptions popping up in test runs
|
|
80
|
+
17165f6 fix map collection extension method
|
|
81
|
+
b2aef50 rename Typer scope creation for methods to be more consistent
|
|
82
|
+
70a95a7 fix BlocksTest#test_block_with_method_def
|
|
83
|
+
22efc0c fix system reference in test helper
|
|
84
|
+
30955f6 blocks_test whitespace
|
|
85
|
+
df57318 log source of AST to be typed, where available
|
|
86
|
+
d15e37f fix up logging. typo, multi install, rm ruby impl
|
|
87
|
+
9cd7f6e allow variable shadowing, fix rescue shadowing test failure
|
|
88
|
+
c2bb20b raise a better error in bytecode generation on missing local
|
|
89
|
+
93f4de2 rename handle_args back to applyArgs
|
|
90
|
+
30cf680 rm factory_test since it's subject is gone
|
|
91
|
+
c59d04b deprecate -c for classpath in favor of -cp / --classpath
|
|
92
|
+
9ef9329 delay exiting to the main methods of commands so they're testable. Also more JRuby friendly
|
|
93
|
+
e569bf2 delete all the things! rm JRuby Compiler bits
|
|
94
|
+
b045cde use File::PATH_SEPARATOR for classpath when constructing classpaths in Rakefile
|
|
95
|
+
486d634 clean up some lost changes removing the old test helper code
|
|
96
|
+
2dff436 rm require of removed file
|
|
97
|
+
bb7d224 rm mirahp
|
|
98
|
+
f9761b2 rm old generator test
|
|
99
|
+
cfa7c39 rm bytecode test helper as it's not needed anymore
|
|
100
|
+
80d02da oops. fix typo in args code
|
|
101
|
+
554860a rm old backend rake tasks
|
|
102
|
+
78596fa only do new_ci and not bytecode_ci
|
|
103
|
+
b45d158 move logger setup to MirahArguments
|
|
104
|
+
68bef4a pull out arg object into its own file
|
|
105
|
+
04a3b08 convert class loader tests to point directly at Mirah classes
|
|
106
|
+
d884d90 extract an object to hold onto MirahTool cfg
|
|
107
|
+
3a58e94 fix c&p'd test case name
|
|
108
|
+
4f86094 add color toggle to self hosted jar
|
|
109
|
+
3b3713a use CLASS as default retention for annotations
|
|
110
|
+
ddf6782 fix annotation value test
|
|
111
|
+
3422c00 rm accidentally checked fix for editor that doesn't understand 'EOF'
|
|
112
|
+
8208a27 rm test that identified broken behavior that's fixed wrt interfaces
|
|
113
|
+
32c2f1e replace System.out.println w/ puts in tests
|
|
114
|
+
7ae7d17 change field setter test so it doesn't depend on ast
|
|
115
|
+
3c7a417 improve compile, parse_and_type new backend test helpers
|
|
116
|
+
71536e6 extract diagnostic construction in error collector into helper method
|
|
117
|
+
9df5e48 fix compilation helper s.t. separate compilation test passes
|
|
118
|
+
b0bfa37 use the pend w/ block form so that when ClassPath is added, it'll fail
|
|
119
|
+
1b870c6 change mirror assertion from equality to same type check
|
|
120
|
+
2581267 Revert "fix mirror lub equality assertion"
|
|
121
|
+
87e47ae Merge branch 'master' into new_bootstrap
|
|
122
|
+
f84664a Add targets for bootstrapping mirahc.jar from itself.
|
|
123
|
+
3eca2d3 Fix for generic types inside a binding.
|
|
124
|
+
72ba91c Implement equality for ResolvedCall to prevent extra type updates.
|
|
125
|
+
2bf331c Proxy node fixes.
|
|
126
|
+
dc23f9c Fix AssignmentFuture.
|
|
127
|
+
366825f Revert "fix mirror lub equality assertion"
|
|
128
|
+
4e9cbe4 Fix for MethodLookup debugging.
|
|
129
|
+
40452c9 Fix error propagation with AssignableTypeFuture
|
|
130
|
+
1b68b2f ProxyNode fixes.
|
|
131
|
+
03b2238 Add debugging info to MethodLookup.
|
|
132
|
+
7371f11 Improve CallFuture error propagation.
|
|
133
|
+
da701e2 Update parser again
|
|
134
|
+
bcce07e Merge branch 'bootstrap_with_new_compiler' of https://github.com/mirah/mirah into new_bootstrap
|
|
135
|
+
2fc8bef Introduce a proxy node, so we can properly clone method calls.
|
|
136
|
+
7b9408e Update parser
|
|
137
|
+
2e7b404 Explicitly specify the package of AST types in case there's a conflicting type in the macro's package.
|
|
138
|
+
8037711 Merge branch 'new_bootstrap' of git://github.com/ribrdb/mirah into ribrdb-new_bootstrap
|
|
139
|
+
64fee4d Test fixes.
|
|
140
|
+
29d335a try fixing travis by fixing file sorting
|
|
141
|
+
67966e0 change rake deps to dist/mirahc for now + add clean for downloaded deps
|
|
142
|
+
53123e1 fix superclass mirror type updates
|
|
143
|
+
99350b3 move local var def in mirrors base_type closer to usage
|
|
144
|
+
f12196b add toString to NarrowingTypeFuture
|
|
145
|
+
a0053ba break out failing superclass type update mirror test
|
|
146
|
+
d69f90d move debugging help to the test helper
|
|
147
|
+
673d9e4 add tmp dir to ignored files
|
|
148
|
+
3007c6c add pend to test depending on undefined constant
|
|
149
|
+
d306a89 fix mirror lub equality assertion
|
|
150
|
+
0099f67 move debugging module into test_helper
|
|
151
|
+
ea9d8ea typer formatting
|
|
152
|
+
61bea51 Update test targets.
|
|
153
|
+
e0fff81 Merge branch 'jvm_version' into new_bootstrap
|
|
154
|
+
e645fbf Merge branch 'master' of https://github.com/mirah/mirah
|
|
155
|
+
010280e Fix for static imports that are updated after use.
|
|
156
|
+
13c055a Update tests to use new compiler.
|
|
157
|
+
d4231c6 Importing an undefined class should be an error
|
|
158
|
+
a4a72d2 Fix for loading compiler annotations.
|
|
159
|
+
ecff9e6 Fix MethodFuture error propagation
|
|
160
|
+
492b08c Fix CallFuture error propagation
|
|
161
|
+
d62bdb0 External debugger support
|
|
162
|
+
b38a592 add helper for expanding and replacing macros
|
|
163
|
+
d4626eb extract isMacro helper in typer
|
|
164
|
+
be72bb5 Pause on inference errors when using type debugger.
|
|
165
|
+
1431331 bump version to 0.1.3
|
|
166
|
+
fe53788 fix up maven release notes
|
|
167
|
+
a1f776e fix bug due to rm'd optional arg on typer.infer
|
|
168
|
+
336d0ec Merge branch 'master' of git://github.com/ribrdb/mirah into ribrdb-master
|
|
169
|
+
6ef42e7 fix invalid bytecode.
|
|
170
|
+
944abf9 Fix maven build.
|
|
171
|
+
d9f9e9e Print a warning instead of raising an exception when building a closure with no methods.
|
|
172
|
+
4706809 Update classpath for macro classloader.
|
|
173
|
+
4ade702 Update the bootstrap compiler
|
|
174
|
+
6335479 Fix comparison of MirrorProxies in LubFinder.
|
|
175
|
+
da24688 Fixes for generics.
|
|
176
|
+
db0c49e Fix rakefile syntax
|
|
177
|
+
8cda99e Test fixes
|
|
178
|
+
cf46341 MirrorProxy.erasure should return a MirrorProxy.
|
|
179
|
+
0709b89 Debugger improvements
|
|
180
|
+
3311a0d Implement interactive type debugger.
|
|
181
|
+
90f44dd Start implementing type debugger.
|
|
182
|
+
dd3f3bf Merge branch 'master' into jvm_version
|
|
183
|
+
fe037d1 Fix comparison of meta types after incompatible changes.
|
|
184
|
+
b045672 Fix supertypes of main class.
|
|
185
|
+
e088086 Fix debug formatting for LocalFuture
|
|
186
|
+
4c0588b More classpath fixes.
|
|
187
|
+
40ef885 Fix loading of macro types.
|
|
188
|
+
6a5b61e Better support for extending SimpleDiagnostics
|
|
189
|
+
93b0650 Implement MirahCommand.
|
|
190
|
+
cbb2630 Merge branch 'fb2' into jvm_version
|
|
191
|
+
6c393f1 Add dependency on jruby-complete.jar
|
|
192
|
+
56df34f Fix a couple bugs in conflicting method/macro detection.
|
|
193
|
+
2622fa5 Fix typo in bootstrap mirahc.jar version.
|
|
194
|
+
9dd9287 Fix classfile version of java classes.
|
|
195
|
+
e91515e Fix for test_method_def_after_macro_def_with_same_name_raises_error.
|
|
196
|
+
0d6f12d Fix jvm version flag.
|
|
197
|
+
3858e40 Add dependency on mirahc-1.1.2-dev.jar
|
|
198
|
+
5a44329 Add --jvm option to mirahc.jar
|
|
199
|
+
b858825 Download bootstrap mirahc from mirah.googlecode.com.
|
|
200
|
+
aaa033e Fix constructors test.
|
|
201
|
+
d3b3697 Fix lub test.
|
|
202
|
+
e916083 Change test_findMethod failure to pending.
|
|
203
|
+
0460f68 Fix negated comparisons with NaN.
|
|
204
|
+
066fa56 Fix 'raise ex' where 'ex' is an exception object.
|
|
205
|
+
21ce0df Fix classloader used for loading macros.
|
|
206
|
+
3fec7e0 Fix inference for rescue body.
|
|
207
|
+
6b47ed4 Implement unary minus operator.
|
|
208
|
+
ea578b3 Add intrinsics to NullType
|
|
209
|
+
f3837aa Improve debug output for type futures.
|
|
210
|
+
41e6233 Test for nil methods.
|
|
211
|
+
01cefa7 Fix vmofule -- loggers get garbage collected if no one retains them.
|
|
212
|
+
e4ea7d7 Methods shouldn't return NullType
|
|
213
|
+
9b468e7 Support Noops inside ClassDefinition
|
|
214
|
+
0d6675e Patch bad bytecode in mirah.lang.ast.Unquote
|
|
215
|
+
c35bb64 Add cast helper method for macros to use.
|
|
216
|
+
a0c92d5 Fix block arguments in macros.
|
|
217
|
+
ab3569f Support compiling a directory,
|
|
218
|
+
aa97f2f Fix macro classpath.
|
|
219
|
+
fc30632 Make sure UnreachableType doesn't leak out of method return values.
|
|
220
|
+
de4bbe7 Fix subtyping for NullType.
|
|
221
|
+
dac8dc1 Fix lub of raw and generic type.
|
|
222
|
+
58d8305 Add todo to download compiler.
|
|
223
|
+
be3324f Clean up compilation using the new compiler.
|
|
224
|
+
ee560c4 Use real macros in org.mirah.macros.*
|
|
225
|
+
|
|
1
226
|
=== 0.1.2 New Year, New Release / 2014-01-05
|
|
2
227
|
|
|
3
228
|
8421140 add desc'd rake task for building mirahc.jar
|
data/Rakefile
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright (c) 2010-
|
|
1
|
+
# Copyright (c) 2010-2014 The Mirah project authors. All Rights Reserved.
|
|
2
2
|
# All contributing project authors may be found in the NOTICE file.
|
|
3
3
|
#
|
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -12,40 +12,36 @@
|
|
|
12
12
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
13
|
# See the License for the specific language governing permissions and
|
|
14
14
|
# limitations under the License.
|
|
15
|
-
|
|
15
|
+
begin
|
|
16
|
+
require 'bundler/setup'
|
|
17
|
+
rescue LoadError
|
|
18
|
+
puts "couldn't load bundler. Check your environment."
|
|
19
|
+
end
|
|
16
20
|
require 'rake'
|
|
17
21
|
require 'rake/testtask'
|
|
18
22
|
require 'rubygems'
|
|
19
23
|
require 'rubygems/package_task'
|
|
20
|
-
require 'bundler/setup'
|
|
21
24
|
require 'java'
|
|
22
25
|
require 'jruby/compiler'
|
|
23
26
|
require 'ant'
|
|
24
27
|
|
|
28
|
+
#TODO update downloads st build reqs that are not run reqs go in a different dir
|
|
29
|
+
# put run reqs in javalib
|
|
30
|
+
# final artifacts got in dist
|
|
31
|
+
|
|
25
32
|
# this definition ensures that the bootstrap tasks will be completed before
|
|
26
33
|
# building the .gem file. Otherwise, the gem may not contain the jars.
|
|
27
|
-
task :gem =>
|
|
28
|
-
|
|
29
|
-
"javalib/mirah-mirrors.jar"]
|
|
34
|
+
task :gem => :compile
|
|
35
|
+
|
|
30
36
|
Gem::PackageTask.new Gem::Specification.load('mirah.gemspec') do |pkg|
|
|
31
37
|
pkg.need_zip = true
|
|
32
38
|
pkg.need_tar = true
|
|
33
39
|
end
|
|
34
40
|
|
|
35
|
-
|
|
41
|
+
task :default => :new_ci
|
|
36
42
|
|
|
37
|
-
task :bootstrap => ['javalib/mirah-bootstrap.jar',
|
|
38
|
-
'javalib/mirah-builtins.jar',
|
|
39
|
-
'javalib/mirah-util.jar']
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
task :default => :bytecode_ci
|
|
43
|
-
|
|
44
|
-
desc "run bytecode backend ci"
|
|
45
|
-
task :bytecode_ci => [:'test:core',
|
|
46
|
-
:'test:jvm:bytecode']
|
|
47
43
|
desc "run new backend ci"
|
|
48
|
-
task :new_ci => [:'test:core', :'test:jvm:
|
|
44
|
+
task :new_ci => [:'test:core', :'test:jvm', :'test:artifacts']
|
|
49
45
|
|
|
50
46
|
def run_tests tests
|
|
51
47
|
results = tests.map do |name|
|
|
@@ -65,61 +61,52 @@ end
|
|
|
65
61
|
|
|
66
62
|
desc "run full test suite"
|
|
67
63
|
task :test do
|
|
68
|
-
run_tests [ 'test:core', 'test:plugins', 'test:jvm', 'test:
|
|
64
|
+
run_tests [ 'test:core', 'test:plugins', 'test:jvm', 'test:artifacts' ]
|
|
69
65
|
end
|
|
70
66
|
|
|
71
67
|
namespace :test do
|
|
72
68
|
|
|
73
69
|
desc "run the core tests"
|
|
74
|
-
Rake::TestTask.new :core => :
|
|
70
|
+
Rake::TestTask.new :core => :compile do |t|
|
|
75
71
|
t.libs << 'test'
|
|
76
72
|
t.test_files = FileList["test/core/**/*test.rb"]
|
|
77
73
|
java.lang.System.set_property("jruby.duby.enabled", "true")
|
|
78
74
|
end
|
|
79
75
|
|
|
80
76
|
desc "run tests for plugins"
|
|
81
|
-
Rake::TestTask.new :plugins => :
|
|
77
|
+
Rake::TestTask.new :plugins => :compile do |t|
|
|
82
78
|
t.libs << 'test'
|
|
83
79
|
t.test_files = FileList["test/plugins/**/*test.rb"]
|
|
84
80
|
java.lang.System.set_property("jruby.duby.enabled", "true")
|
|
85
81
|
end
|
|
86
82
|
|
|
87
|
-
desc "run
|
|
88
|
-
|
|
89
|
-
|
|
83
|
+
desc "run the artifact tests"
|
|
84
|
+
Rake::TestTask.new :artifacts => :compile do |t|
|
|
85
|
+
t.libs << 'test'
|
|
86
|
+
t.test_files = FileList["test/artifacts/**/*test.rb"]
|
|
90
87
|
end
|
|
91
88
|
|
|
89
|
+
|
|
90
|
+
desc "run jvm tests"
|
|
91
|
+
task :jvm => 'test:jvm:all'
|
|
92
|
+
|
|
92
93
|
namespace :jvm do
|
|
93
94
|
task :test_setup => [:clean_tmp_test_directory, :build_test_fixtures]
|
|
94
95
|
|
|
95
|
-
desc "run jvm tests compiling to bytecode"
|
|
96
|
-
Rake::TestTask.new :bytecode => [:bootstrap,
|
|
97
|
-
"javalib/mirah-compiler.jar",
|
|
98
|
-
:test_setup] do |t|
|
|
99
|
-
t.libs << 'test' <<'test/jvm'
|
|
100
|
-
t.ruby_opts.concat ["-r", "bytecode_test_helper"]
|
|
101
|
-
t.test_files = FileList["test/jvm/**/*test.rb"]
|
|
102
|
-
end
|
|
103
|
-
|
|
104
96
|
desc "run jvm tests using the new self hosted backend"
|
|
105
|
-
task :
|
|
106
|
-
run_tests ["test:jvm:
|
|
107
|
-
end
|
|
108
|
-
|
|
109
|
-
Rake::TestTask.new :new_backend => [:bootstrap, "javalib/mirah-compiler.jar", :test_setup] do |t|
|
|
110
|
-
t.libs << 'test' << 'test/jvm'
|
|
111
|
-
t.ruby_opts.concat ["-r", "new_backend_test_helper"]
|
|
112
|
-
t.test_files = FileList["test/jvm/**/*test.rb"]
|
|
97
|
+
task :all do
|
|
98
|
+
run_tests ["test:jvm:mirror_compilation", "test:jvm:mirrors"]
|
|
113
99
|
end
|
|
114
100
|
|
|
115
101
|
desc "run tests for mirror type system"
|
|
116
|
-
Rake::TestTask.new :mirrors => "
|
|
102
|
+
Rake::TestTask.new :mirrors => "dist/mirahc.jar" do |t|
|
|
117
103
|
t.libs << 'test'
|
|
118
104
|
t.test_files = FileList["test/mirrors/**/*test.rb"]
|
|
119
105
|
end
|
|
120
|
-
|
|
106
|
+
|
|
107
|
+
Rake::TestTask.new :mirror_compilation => ["dist/mirahc.jar", :test_setup] do |t|
|
|
121
108
|
t.libs << 'test' << 'test/jvm'
|
|
122
|
-
t.ruby_opts.concat ["-r", "
|
|
109
|
+
t.ruby_opts.concat ["-r", "new_backend_test_helper"]
|
|
123
110
|
t.test_files = FileList["test/jvm/**/*test.rb"]
|
|
124
111
|
end
|
|
125
112
|
end
|
|
@@ -133,8 +120,11 @@ task :clean_tmp_test_directory do
|
|
|
133
120
|
end
|
|
134
121
|
|
|
135
122
|
task :build_test_fixtures do
|
|
136
|
-
ant.javac 'destdir' => "tmp_test/fixtures",
|
|
137
|
-
|
|
123
|
+
ant.javac 'destdir' => "tmp_test/fixtures",
|
|
124
|
+
'srcdir' => 'test/fixtures',
|
|
125
|
+
'includeantruntime' => false,
|
|
126
|
+
'debug' => true,
|
|
127
|
+
'listfiles' => true
|
|
138
128
|
end
|
|
139
129
|
|
|
140
130
|
task :init do
|
|
@@ -146,29 +136,27 @@ desc "clean up build artifacts"
|
|
|
146
136
|
task :clean do
|
|
147
137
|
ant.delete 'quiet' => true, 'dir' => 'build'
|
|
148
138
|
ant.delete 'quiet' => true, 'dir' => 'dist'
|
|
149
|
-
rm_f '
|
|
150
|
-
rm_f 'javalib/mirah-compiler.jar'
|
|
151
|
-
rm_f 'javalib/mirah-builtins.jar'
|
|
152
|
-
rm_f 'javalib/mirah-util.jar'
|
|
153
|
-
rm_f 'javalib/mirah-mirrors.jar'
|
|
139
|
+
rm_f 'dist/mirahc.jar'
|
|
154
140
|
rm_rf 'tmp'
|
|
155
141
|
end
|
|
156
142
|
|
|
157
|
-
|
|
158
|
-
task :
|
|
159
|
-
|
|
143
|
+
desc "clean downloaded dependencies"
|
|
144
|
+
task :clean_downloads do
|
|
145
|
+
rm_f "javalib/mirahc-prev.jar"
|
|
146
|
+
rm_f 'javalib/jruby-complete.jar'
|
|
147
|
+
rm_f 'javalib/asm-5.jar'
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
task :compile => 'dist/mirahc.jar'
|
|
151
|
+
task :jvm_backend => 'dist/mirahc.jar'
|
|
160
152
|
|
|
161
|
-
desc "build
|
|
153
|
+
desc "build backwards-compatible ruby jar"
|
|
162
154
|
task :jar => :compile do
|
|
163
155
|
ant.jar 'jarfile' => 'dist/mirah.jar' do
|
|
164
156
|
fileset 'dir' => 'lib'
|
|
165
157
|
fileset 'dir' => 'build'
|
|
166
158
|
fileset 'dir' => '.', 'includes' => 'bin/*'
|
|
167
|
-
|
|
168
|
-
zipfileset 'src' => 'javalib/mirah-bootstrap.jar'
|
|
169
|
-
zipfileset 'src' => 'javalib/mirah-builtins.jar'
|
|
170
|
-
zipfileset 'src' => 'javalib/mirah-util.jar'
|
|
171
|
-
zipfileset 'src' => 'javalib/mirah-compiler.jar'
|
|
159
|
+
zipfileset 'src' => 'dist/mirahc.jar'
|
|
172
160
|
manifest do
|
|
173
161
|
attribute 'name' => 'Main-Class', 'value' => 'org.mirah.MirahCommand'
|
|
174
162
|
end
|
|
@@ -176,15 +164,11 @@ task :jar => :compile do
|
|
|
176
164
|
end
|
|
177
165
|
|
|
178
166
|
namespace :jar do
|
|
179
|
-
desc "build
|
|
180
|
-
task :
|
|
181
|
-
|
|
182
|
-
desc "build self-contained, complete jar"
|
|
183
|
-
task :complete => [:jar, 'javalib/jruby-complete.jar'] do
|
|
167
|
+
desc "build self-contained, complete ruby jar"
|
|
168
|
+
task :complete => [:jar, 'javalib/asm-5.jar'] do
|
|
184
169
|
ant.jar 'jarfile' => 'dist/mirah-complete.jar' do
|
|
185
170
|
zipfileset 'src' => 'dist/mirah.jar'
|
|
186
|
-
zipfileset 'src' => 'javalib/
|
|
187
|
-
zipfileset 'src' => 'javalib/mirah-parser.jar'
|
|
171
|
+
zipfileset 'src' => 'javalib/asm-5.jar'
|
|
188
172
|
manifest do
|
|
189
173
|
attribute 'name' => 'Main-Class', 'value' => 'org.mirah.MirahCommand'
|
|
190
174
|
end
|
|
@@ -206,6 +190,7 @@ task :zip => 'jar:complete' do
|
|
|
206
190
|
cp 'README.md', "#{basedir}"
|
|
207
191
|
cp 'NOTICE', "#{basedir}"
|
|
208
192
|
cp 'LICENSE', "#{basedir}"
|
|
193
|
+
cp 'COPYING', "#{basedir}"
|
|
209
194
|
cp 'History.txt', "#{basedir}"
|
|
210
195
|
sh "sh -c 'cd tmp ; zip -r ../dist/mirah-#{Mirah::VERSION}.zip mirah-#{Mirah::VERSION}/*'"
|
|
211
196
|
rm_rf 'tmp'
|
|
@@ -214,274 +199,82 @@ end
|
|
|
214
199
|
desc "Build all redistributable files"
|
|
215
200
|
task :dist => [:gem, :zip]
|
|
216
201
|
|
|
217
|
-
|
|
202
|
+
#TODO find/create ssl location for this jar
|
|
203
|
+
file_create 'javalib/asm-5.jar' do
|
|
218
204
|
require 'open-uri'
|
|
219
|
-
puts "Downloading
|
|
220
|
-
open('http://
|
|
221
|
-
open('javalib/
|
|
205
|
+
puts "Downloading asm-5.jar"
|
|
206
|
+
open('http://central.maven.org/maven2/org/ow2/asm/asm-all/5.0.3/asm-all-5.0.3.jar', 'rb') do |src|
|
|
207
|
+
open('javalib/asm-5.jar', 'wb') do |dest|
|
|
222
208
|
dest.write(src.read)
|
|
223
209
|
end
|
|
224
210
|
end
|
|
225
211
|
end
|
|
226
212
|
|
|
227
|
-
file_create 'javalib/
|
|
213
|
+
file_create 'javalib/mirahc-prev.jar' do
|
|
228
214
|
require 'open-uri'
|
|
229
|
-
|
|
230
|
-
open('
|
|
231
|
-
|
|
232
|
-
dest.write(src.read)
|
|
233
|
-
end
|
|
234
|
-
end
|
|
235
|
-
end
|
|
215
|
+
# get latest snapshot from XML description.
|
|
216
|
+
xml = open('https://oss.sonatype.org/service/local/repositories/snapshots/content/org/mirah/mirah/0.1.3-SNAPSHOT/').read
|
|
217
|
+
url = xml.scan(%r{<resourceURI>(https:.*\.jar)</resourceURI>}).map(&:first).sort.last
|
|
236
218
|
|
|
237
|
-
|
|
238
|
-
'src/org/mirah/MirahClassLoader.java',
|
|
239
|
-
'src/org/mirah/IsolatedResourceLoader.java',
|
|
240
|
-
'src/org/mirah/MirahLogFormatter.mirah',
|
|
241
|
-
'src/org/mirah/util/simple_diagnostics.mirah'] +
|
|
242
|
-
Dir['src/org/mirah/{macros,typer}/*.mirah'] +
|
|
243
|
-
Dir['src/org/mirah/typer/simple/*.mirah'] +
|
|
244
|
-
Dir['src/org/mirah/macros/anno/*.java'] do
|
|
245
|
-
build_dir = 'build/bootstrap'
|
|
246
|
-
rm_rf build_dir
|
|
247
|
-
mkdir_p build_dir
|
|
248
|
-
|
|
249
|
-
# Compile annotations and class loader
|
|
250
|
-
ant.javac 'destdir' => build_dir, 'srcdir' => 'src',
|
|
251
|
-
'includeantruntime' => false, 'debug' => true, 'listfiles' => true
|
|
252
|
-
|
|
253
|
-
# Compile the Typer and Macro compiler
|
|
254
|
-
bootstrap_mirahc('src/org/mirah/macros', 'src/org/mirah/MirahLogFormatter.mirah', 'src/org/mirah/typer',
|
|
255
|
-
'src/org/mirah/util/simple_diagnostics.mirah',
|
|
256
|
-
:classpath => ['javalib/mirah-parser.jar', 'build/bootstrap'],
|
|
257
|
-
:dest => build_dir
|
|
258
|
-
# :options => ['-V']
|
|
259
|
-
)
|
|
260
|
-
add_quote_macro
|
|
261
|
-
cp Dir['src/org/mirah/macros/*.tpl'], "#{build_dir}/org/mirah/macros"
|
|
262
|
-
|
|
263
|
-
# Build the jar
|
|
264
|
-
ant.jar 'jarfile' => 'javalib/mirah-bootstrap.jar' do
|
|
265
|
-
fileset 'dir' => build_dir
|
|
266
|
-
end
|
|
267
|
-
end
|
|
219
|
+
puts "Downloading mirahc-prev.jar from #{url}"
|
|
268
220
|
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
mkdir_p build_dir
|
|
273
|
-
|
|
274
|
-
# Compile annotations and class loader
|
|
275
|
-
ant.javac 'source' => '1.5', 'destdir' => build_dir, 'srcdir' => 'src',
|
|
276
|
-
'includeantruntime' => false, 'debug' => true, 'listfiles' => true
|
|
277
|
-
|
|
278
|
-
# Compile the Typer and Macro compiler
|
|
279
|
-
stage1_files = Dir['src/org/mirah/{builtins,jvm/types,macros,util,}/*.mirah',
|
|
280
|
-
'src/org/mirah/typer/**/*.mirah']
|
|
281
|
-
runjava('javalib/mirahc.jar',
|
|
282
|
-
'-d', build_dir,
|
|
283
|
-
'-classpath', 'javalib/mirah-parser.jar',
|
|
284
|
-
*stage1_files)
|
|
285
|
-
|
|
286
|
-
add_quote_macro
|
|
287
|
-
cp Dir['src/org/mirah/macros/*.tpl'], "#{build_dir}/org/mirah/macros"
|
|
288
|
-
|
|
289
|
-
stage2_files = Dir['src/org/mirah/jvm/{compiler,mirrors,model}/**/*.mirah',
|
|
290
|
-
'src/org/mirah/tool/*.mirah']
|
|
291
|
-
runjava('javalib/mirahc.jar',
|
|
292
|
-
'-d', build_dir,
|
|
293
|
-
'-classpath', "javalib/mirah-parser.jar:#{build_dir}",
|
|
294
|
-
*stage2_files)
|
|
295
|
-
|
|
296
|
-
# Build the jar
|
|
297
|
-
ant.jar 'jarfile' => 'javalib/mirahc-2.jar' do
|
|
298
|
-
fileset 'dir' => build_dir
|
|
299
|
-
zipfileset :src => 'javalib/jruby-complete.jar', :includes => 'org/jruby/org/objectweb/**/*'
|
|
300
|
-
zipfileset :src => 'javalib/mirah-parser.jar'
|
|
301
|
-
manifest do
|
|
302
|
-
attribute :name => 'Main-Class', :value => 'org.mirah.tool.Mirahc'
|
|
221
|
+
open(url, 'rb') do |src|
|
|
222
|
+
open('javalib/mirahc-prev.jar', 'wb') do |dest|
|
|
223
|
+
dest.write(src.read)
|
|
303
224
|
end
|
|
304
225
|
end
|
|
305
226
|
end
|
|
306
227
|
|
|
307
|
-
file 'javalib/mirah-util.jar' do
|
|
308
|
-
require 'mirah'
|
|
309
|
-
build_dir = 'build/util'
|
|
310
|
-
rm_rf build_dir
|
|
311
|
-
mkdir_p build_dir
|
|
312
|
-
|
|
313
|
-
# build the Ruby sources
|
|
314
|
-
puts "Compiling Ruby sources"
|
|
315
|
-
JRuby::Compiler.compile_argv([
|
|
316
|
-
'-t', build_dir,
|
|
317
|
-
'--javac',
|
|
318
|
-
'src/org/mirah/mirah_command.rb'
|
|
319
|
-
])
|
|
320
|
-
|
|
321
|
-
# compile ant stuff
|
|
322
|
-
ant_classpath = $CLASSPATH.grep(/ant/).map{|x| x.sub(/^file:/,'')}.join(File::PATH_SEPARATOR)
|
|
323
|
-
sh *%W(jruby -S mirahc --classpath #{ant_classpath}:#{build_dir} --dest #{build_dir} src/org/mirah/ant)
|
|
324
|
-
|
|
325
|
-
# compile invokedynamic stuff
|
|
326
|
-
ant.javac 'destdir' => build_dir, 'srcdir' => 'src',
|
|
327
|
-
'includes' => 'org/mirah/DynalangBootstrap.java',
|
|
328
|
-
'classpath' => 'javalib/dynalink-0.1.jar:javalib/jsr292-mock.jar',
|
|
329
|
-
'includeantruntime' => false
|
|
330
|
-
|
|
331
|
-
# Build the jar
|
|
332
|
-
ant.jar 'jarfile' => 'javalib/mirah-util.jar' do
|
|
333
|
-
fileset 'dir' => build_dir
|
|
334
|
-
end
|
|
335
|
-
end
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
file 'javalib/mirah-builtins.jar' => ['javalib/mirah-bootstrap.jar'] + Dir['src/org/mirah/builtins/*.mirah'] do
|
|
339
|
-
rm_f 'javalib/mirah-builtins.jar'
|
|
340
|
-
rm_rf 'build/builtins'
|
|
341
|
-
mkdir_p 'build/builtins'
|
|
342
|
-
sh *%w(jruby -S mirahc --dest build/builtins src/org/mirah/builtins)
|
|
343
|
-
ant.jar 'jarfile' => 'javalib/mirah-builtins.jar' do
|
|
344
|
-
fileset 'dir' => 'build/builtins'
|
|
345
|
-
end
|
|
346
|
-
rm_rf 'build/builtins'
|
|
347
|
-
end
|
|
348
|
-
|
|
349
|
-
file 'javalib/mirah-compiler.jar' => ['javalib/mirah-builtins.jar'] + Dir['src/org/mirah/{util,jvm/types,jvm/compiler}/*.mirah'] do
|
|
350
|
-
rm_f 'javalib/mirah-compiler.jar'
|
|
351
|
-
rm_rf 'build/compiler'
|
|
352
|
-
mkdir_p 'build/compiler'
|
|
353
|
-
phase3_files = Dir['src/org/mirah/jvm/compiler/{class,interface,script}_compiler.mirah'] + ['src/org/mirah/jvm/compiler/backend.mirah']
|
|
354
|
-
phase2_files = Dir['src/org/mirah/jvm/compiler/{condition,method,string}_compiler.mirah']
|
|
355
|
-
phase1_files = Dir['src/org/mirah/jvm/compiler/*.mirah'] - phase2_files - phase3_files
|
|
356
|
-
sh *(%w(jruby -S mirahc --dest build/compiler ) +
|
|
357
|
-
%w(--classpath javalib/mirah-parser.jar:javalib/mirah-bootstrap.jar) +
|
|
358
|
-
%w(src/org/mirah/util src/org/mirah/jvm/types src/org/mirah/jvm/compiler/base_compiler.mirah))
|
|
359
|
-
sh *(%w(jruby -S mirahc --dest build/compiler ) +
|
|
360
|
-
%w(--classpath javalib/mirah-parser.jar:javalib/mirah-bootstrap.jar:build/compiler) +
|
|
361
|
-
%w(src/org/mirah/util/context.mirah) + phase1_files)
|
|
362
|
-
sh *(%w(jruby -S mirahc --dest build/compiler ) +
|
|
363
|
-
%w(--classpath javalib/mirah-parser.jar:javalib/mirah-bootstrap.jar:build/compiler) +
|
|
364
|
-
%w(src/org/mirah/util/context.mirah) + phase2_files)
|
|
365
|
-
sh *(%w(jruby -S mirahc --dest build/compiler ) +
|
|
366
|
-
%w(--classpath javalib/mirah-parser.jar:javalib/mirah-bootstrap.jar:build/compiler) +
|
|
367
|
-
%w(src/org/mirah/util/context.mirah) + phase3_files)
|
|
368
|
-
ant.jar 'jarfile' => 'javalib/mirah-compiler.jar' do
|
|
369
|
-
fileset 'dir' => 'build/compiler'
|
|
370
|
-
end
|
|
371
|
-
end
|
|
372
|
-
|
|
373
|
-
file 'javalib/mirah-mirrors.jar' => ['javalib/mirah-compiler.jar'] + Dir['src/org/mirah/jvm/mirrors/**/*.mirah','src/org/mirah/jvm/model/**/*.mirah'] do
|
|
374
|
-
rm_f 'javalib/mirah-mirrors.jar'
|
|
375
|
-
rm_rf 'build/mirrors'
|
|
376
|
-
mkdir_p 'build/mirrors'
|
|
377
|
-
sh *(%w(jruby -S mirahc -N --dest build/mirrors ) +
|
|
378
|
-
%w(--classpath javalib/mirah-parser.jar:javalib/mirah-bootstrap.jar:javalib/mirah-compiler.jar) +
|
|
379
|
-
%w(src/org/mirah/jvm/mirrors/ src/org/mirah/jvm/model/))
|
|
380
|
-
ant.jar 'jarfile' => 'javalib/mirah-mirrors.jar' do
|
|
381
|
-
fileset 'dir' => 'build/mirrors'
|
|
382
|
-
end
|
|
383
|
-
rm_rf 'build/mirrors'
|
|
384
|
-
end
|
|
385
|
-
|
|
386
|
-
file 'javalib/mirahc.jar' => ['javalib/mirah-mirrors.jar',
|
|
387
|
-
'src/org/mirah/tool/mirahc.mirah',
|
|
388
|
-
] do
|
|
389
|
-
rm_f 'javalib/mirahc.jar'
|
|
390
|
-
rm_rf 'build/mirahc'
|
|
391
|
-
mkdir_p 'build/mirahc'
|
|
392
|
-
sh *(%w(jruby -S mirahc -N --dest build/mirahc ) +
|
|
393
|
-
%w(--classpath javalib/mirah-parser.jar:javalib/mirah-bootstrap.jar:javalib/mirah-compiler.jar:javalib/mirah-mirrors.jar) +
|
|
394
|
-
%w(src/org/mirah/tool/))
|
|
395
|
-
ant.jar :jarfile => 'javalib/mirahc.jar' do
|
|
396
|
-
fileset :dir => 'build/mirahc'
|
|
397
|
-
zipfileset :src => 'javalib/mirah-bootstrap.jar'
|
|
398
|
-
zipfileset :src => 'javalib/mirah-builtins.jar'
|
|
399
|
-
zipfileset :src => 'javalib/mirah-util.jar'
|
|
400
|
-
zipfileset :src => 'javalib/mirah-compiler.jar'
|
|
401
|
-
zipfileset :src => 'javalib/mirah-mirrors.jar'
|
|
402
|
-
zipfileset :src => 'javalib/jruby-complete.jar', :includes => 'org/jruby/org/objectweb/**/*'
|
|
403
|
-
zipfileset :src => 'javalib/mirah-parser.jar'
|
|
404
|
-
manifest do
|
|
405
|
-
attribute :name => 'Main-Class', :value => 'org.mirah.tool.Mirahc'
|
|
406
|
-
end
|
|
407
|
-
end
|
|
408
|
-
end
|
|
409
228
|
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
229
|
+
def bootstrap_mirah_from(old_jar, new_jar)
|
|
230
|
+
mirah_srcs = Dir['src/org/mirah/{builtins,jvm/types,macros,util,}/*.mirah'].sort +
|
|
231
|
+
Dir['src/org/mirah/typer/**/*.mirah'].sort +
|
|
232
|
+
Dir['src/org/mirah/jvm/{compiler,mirrors,model}/**/*.mirah'].sort +
|
|
233
|
+
Dir['src/org/mirah/tool/*.mirah'].sort
|
|
234
|
+
file new_jar => mirah_srcs + [old_jar, 'javalib/asm-5.jar', 'javalib/mirah-parser.jar'] do
|
|
235
|
+
build_dir = 'build/bootstrap'
|
|
236
|
+
rm_rf build_dir
|
|
237
|
+
mkdir_p build_dir
|
|
238
|
+
|
|
239
|
+
# Compile Java sources
|
|
240
|
+
ant.javac 'source' => '1.5',
|
|
241
|
+
'target' => '1.5',
|
|
242
|
+
'destdir' => build_dir,
|
|
243
|
+
'srcdir' => 'src',
|
|
244
|
+
'includeantruntime' => false,
|
|
245
|
+
'debug' => true,
|
|
246
|
+
'listfiles' => true
|
|
247
|
+
|
|
248
|
+
# mirahc needs to be 1.7 or lower
|
|
249
|
+
build_version = java.lang.System.getProperty('java.specification.version')
|
|
250
|
+
if build_version.to_f > 1.7
|
|
251
|
+
build_version = '1.7'
|
|
422
252
|
end
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
253
|
+
# Compile Mirah sources
|
|
254
|
+
runjava('-Xmx512m',
|
|
255
|
+
old_jar,
|
|
256
|
+
'-d', build_dir,
|
|
257
|
+
'-classpath', "javalib/mirah-parser.jar:#{build_dir}:javalib/asm-5.jar",
|
|
258
|
+
'--jvm', build_version,
|
|
259
|
+
*mirah_srcs)
|
|
260
|
+
|
|
261
|
+
# Build the jar
|
|
262
|
+
ant.jar 'jarfile' => new_jar do
|
|
263
|
+
fileset 'dir' => build_dir
|
|
264
|
+
zipfileset 'src' => 'javalib/asm-5.jar', 'includes' => 'org/objectweb/**/*'
|
|
265
|
+
zipfileset 'src' => 'javalib/mirah-parser.jar'
|
|
266
|
+
metainf 'dir' => File.dirname(__FILE__), 'includes' => 'LICENSE,COPYING,NOTICE'
|
|
267
|
+
manifest do
|
|
268
|
+
attribute 'name' => 'Main-Class', 'value' => 'org.mirah.MirahCommand'
|
|
269
|
+
end
|
|
427
270
|
end
|
|
428
271
|
end
|
|
429
272
|
end
|
|
430
273
|
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
av = klass.visitAnnotation('Lorg/mirah/macros/anno/MacroDef;', true)
|
|
435
|
-
av.visit("name", "quote")
|
|
436
|
-
args = av.visitAnnotation('arguments', 'Lorg/mirah/macros/anno/MacroArgs;')
|
|
437
|
-
req = args.visitArray('required')
|
|
438
|
-
req.visit(nil, 'mirah.lang.ast.Block')
|
|
439
|
-
req.visitEnd
|
|
440
|
-
args.visitEnd
|
|
441
|
-
av.visitEnd
|
|
442
|
-
end
|
|
443
|
-
Annotater.new('build/bootstrap/org/mirah/macros/CompilerQuoteMacro.class') do |klass|
|
|
444
|
-
av = klass.visitAnnotation('Lorg/mirah/macros/anno/MacroDef;', true)
|
|
445
|
-
av.visit("name", "quote")
|
|
446
|
-
args = av.visitAnnotation('arguments', 'Lorg/mirah/macros/anno/MacroArgs;')
|
|
447
|
-
req = args.visitArray('required')
|
|
448
|
-
req.visit(nil, 'mirah.lang.ast.Block')
|
|
449
|
-
req.visitEnd
|
|
450
|
-
args.visitEnd
|
|
451
|
-
av.visitEnd
|
|
452
|
-
end
|
|
453
|
-
Annotater.new('build/bootstrap/org/mirah/macros/Macro.class') do |klass|
|
|
454
|
-
av = klass.visitAnnotation('Lorg/mirah/macros/anno/Extensions;', false)
|
|
455
|
-
macros = av.visitArray('macros')
|
|
456
|
-
macros.visit(nil, 'org.mirah.macros.QuoteMacro')
|
|
457
|
-
macros.visitEnd
|
|
458
|
-
av.visitEnd
|
|
459
|
-
end
|
|
460
|
-
Annotater.new('build/bootstrap/org/mirah/macros/Compiler.class') do |klass|
|
|
461
|
-
av = klass.visitAnnotation('Lorg/mirah/macros/anno/Extensions;', false)
|
|
462
|
-
macros = av.visitArray('macros')
|
|
463
|
-
macros.visit(nil, 'org.mirah.macros.CompilerQuoteMacro')
|
|
464
|
-
macros.visitEnd
|
|
465
|
-
av.visitEnd
|
|
466
|
-
end
|
|
467
|
-
end
|
|
274
|
+
bootstrap_mirah_from('javalib/mirahc-prev.jar', 'dist/mirahc.jar')
|
|
275
|
+
bootstrap_mirah_from('dist/mirahc.jar', 'dist/mirahc2.jar')
|
|
276
|
+
bootstrap_mirah_from('dist/mirahc2.jar', 'dist/mirahc3.jar')
|
|
468
277
|
|
|
469
|
-
def bootstrap_mirahc(*paths)
|
|
470
|
-
options = if paths[-1].kind_of?(Hash)
|
|
471
|
-
paths.pop
|
|
472
|
-
else
|
|
473
|
-
{}
|
|
474
|
-
end
|
|
475
|
-
args = options[:options] || []
|
|
476
|
-
if options[:classpath]
|
|
477
|
-
args << '--classpath' << options[:classpath].map {|p| File.expand_path(p)}.join(File::PATH_SEPARATOR)
|
|
478
|
-
end
|
|
479
|
-
args << '-d' << File.expand_path(options[:dest]) << '--jvm' << '1.5'
|
|
480
|
-
jarfile = File.expand_path('javalib/mirah-newast-transitional.jar')
|
|
481
|
-
Dir.chdir(options[:dir] || '.') do
|
|
482
|
-
runjava(jarfile, 'compile', *(args + paths))
|
|
483
|
-
end
|
|
484
|
-
end
|
|
485
278
|
|
|
486
279
|
def runjava(jar, *args)
|
|
487
280
|
sh 'java', '-jar', jar, *args
|