eolang 0.8.2 → 0.8.4
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.
- package/README.md +1 -0
- package/itest/story.eo +1 -1
- package/mvnw/pom.xml +6 -4
- package/package.json +4 -4
- package/renovate.json +2 -1
- package/src/commands/compile.js +2 -0
- package/src/commands/gmi.js +27 -6
- package/src/commands/link.js +2 -0
- package/src/eoc.js +6 -4
- package/src/parser-version.js +1 -1
- package/src/version.js +1 -1
package/README.md
CHANGED
|
@@ -52,6 +52,7 @@ There are also commands that help manipulate with XMIR and EO sources (some of t
|
|
|
52
52
|
|
|
53
53
|
* `audit` inspects all required packages and reports their status
|
|
54
54
|
* `foreign` inspects all objects found in the program after `assemble` step
|
|
55
|
+
* `gmi` generates GMI from XMIR, further rederable as XML or [Dot](https://en.wikipedia.org/wiki/DOT_%28graph_description_language%29)
|
|
55
56
|
* <del>`translate` converts Java/C++/Python/etc. program to EO program</del>
|
|
56
57
|
* <del>`demu` removes `cage` and `memory` objects</del>
|
|
57
58
|
* <del>`dejump` removes `goto` objects</del>
|
package/itest/story.eo
CHANGED
package/mvnw/pom.xml
CHANGED
|
@@ -34,12 +34,12 @@ SOFTWARE.
|
|
|
34
34
|
<dependency>
|
|
35
35
|
<groupId>org.junit.jupiter</groupId>
|
|
36
36
|
<artifactId>junit-jupiter-api</artifactId>
|
|
37
|
-
<version>5.
|
|
37
|
+
<version>5.9.0</version>
|
|
38
38
|
</dependency>
|
|
39
39
|
<dependency>
|
|
40
40
|
<groupId>org.junit.jupiter</groupId>
|
|
41
41
|
<artifactId>junit-jupiter-engine</artifactId>
|
|
42
|
-
<version>5.
|
|
42
|
+
<version>5.9.0</version>
|
|
43
43
|
</dependency>
|
|
44
44
|
</dependencies>
|
|
45
45
|
<build>
|
|
@@ -55,13 +55,15 @@ SOFTWARE.
|
|
|
55
55
|
<version>${eo.version}</version>
|
|
56
56
|
<configuration>
|
|
57
57
|
<excludeSources>.eoc/**</excludeSources>
|
|
58
|
+
<gmiIncludes>${eo.gmiIncludes}</gmiIncludes>
|
|
59
|
+
<gmiExcludes>${eo.gmiExcludes}</gmiExcludes>
|
|
58
60
|
<foreign>${project.build.directory}/eo-foreign.json</foreign>
|
|
59
61
|
<foreignFormat>json</foreignFormat>
|
|
60
62
|
</configuration>
|
|
61
63
|
</plugin>
|
|
62
64
|
<plugin>
|
|
63
65
|
<artifactId>maven-compiler-plugin</artifactId>
|
|
64
|
-
<version>3.
|
|
66
|
+
<version>3.8.1</version>
|
|
65
67
|
<configuration>
|
|
66
68
|
<source>1.8</source>
|
|
67
69
|
<target>1.8</target>
|
|
@@ -69,7 +71,7 @@ SOFTWARE.
|
|
|
69
71
|
</plugin>
|
|
70
72
|
<plugin>
|
|
71
73
|
<artifactId>maven-jar-plugin</artifactId>
|
|
72
|
-
<version>3.
|
|
74
|
+
<version>3.3.0</version>
|
|
73
75
|
<configuration>
|
|
74
76
|
<archive>
|
|
75
77
|
<manifest>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eolang",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.4",
|
|
4
4
|
"author": "Yegor Bugayenko <yegor256@gmail.com> (https://www.yegor256.com/)",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": "objectionary/eoc",
|
|
@@ -23,15 +23,15 @@
|
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"colors": "1.4.0",
|
|
25
25
|
"commander": "9.4.0",
|
|
26
|
-
"fast-xml-parser": "4.0.
|
|
26
|
+
"fast-xml-parser": "4.0.10",
|
|
27
27
|
"xmlhttprequest": "1.8.0"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
|
-
"eslint": "
|
|
30
|
+
"eslint": "8.23.1",
|
|
31
31
|
"eslint-config-google": "0.14.0",
|
|
32
32
|
"grunt": "1.5.3",
|
|
33
33
|
"grunt-contrib-clean": "2.0.1",
|
|
34
|
-
"grunt-eslint": "
|
|
34
|
+
"grunt-eslint": "24.0.0",
|
|
35
35
|
"grunt-mocha-cli": "7.0.0",
|
|
36
36
|
"mocha": "^10.0.0"
|
|
37
37
|
},
|
package/renovate.json
CHANGED
package/src/commands/compile.js
CHANGED
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
|
|
25
25
|
const mvnwSync = require('../mvnw');
|
|
26
26
|
const path = require('path');
|
|
27
|
+
const parserVersion = require('../parser-version');
|
|
27
28
|
|
|
28
29
|
/**
|
|
29
30
|
* Command to compile target language into binaries.
|
|
@@ -38,6 +39,7 @@ module.exports = function(opts) {
|
|
|
38
39
|
`-Dmaven.compiler.target=1.8`,
|
|
39
40
|
`-Deo.targetDir=${target}`,
|
|
40
41
|
`-Deo.generatedDir=${path.resolve(opts.target, 'generated-sources')}`,
|
|
42
|
+
'-Deo.version=' + (opts.parser ? opts.parser : parserVersion()),
|
|
41
43
|
]);
|
|
42
44
|
console.info('Java .class files compiled into %s', target);
|
|
43
45
|
};
|
package/src/commands/gmi.js
CHANGED
|
@@ -31,15 +31,36 @@ const parserVersion = require('../parser-version');
|
|
|
31
31
|
* @param {Hash} opts - All options
|
|
32
32
|
*/
|
|
33
33
|
module.exports = function(opts) {
|
|
34
|
-
|
|
34
|
+
const argv = [
|
|
35
35
|
'eo:gmi',
|
|
36
36
|
'-Deo.version=' + (opts.parser ? opts.parser : parserVersion()),
|
|
37
37
|
opts.verbose ? '' : '--quiet',
|
|
38
|
-
opts.gmiXml ? '-Deo.generateGmiXmlFiles' : '',
|
|
39
|
-
opts.gmiXembly ? '-Deo.generateXemblyFiles' : '',
|
|
40
|
-
opts.gmiGraph ? '-Deo.generateGraphFiles' : '',
|
|
41
|
-
opts.gmiDot ? '-Deo.generateDotFiles' : '',
|
|
42
38
|
`-Deo.targetDir=${path.resolve(opts.target)}`,
|
|
43
|
-
]
|
|
39
|
+
];
|
|
40
|
+
if (opts.include) {
|
|
41
|
+
argv.push('-Deo.gmiIncludes=' + opts.include);
|
|
42
|
+
}
|
|
43
|
+
if (opts.exclude) {
|
|
44
|
+
argv.push('-Deo.gmiExcludes=' + opts.exclude);
|
|
45
|
+
}
|
|
46
|
+
if (opts.xml) {
|
|
47
|
+
argv.push('-Deo.generateGmiXmlFiles');
|
|
48
|
+
}
|
|
49
|
+
if (opts.xembly) {
|
|
50
|
+
argv.push('-Deo.generateGmiXmlFiles');
|
|
51
|
+
argv.push('-Deo.generateXemblyFiles');
|
|
52
|
+
}
|
|
53
|
+
if (opts.graph) {
|
|
54
|
+
argv.push('-Deo.generateGmiXmlFiles');
|
|
55
|
+
argv.push('-Deo.generateXemblyFiles');
|
|
56
|
+
argv.push('-Deo.generateGraphFiles');
|
|
57
|
+
}
|
|
58
|
+
if (opts.dot) {
|
|
59
|
+
argv.push('-Deo.generateGmiXmlFiles');
|
|
60
|
+
argv.push('-Deo.generateXemblyFiles');
|
|
61
|
+
argv.push('-Deo.generateGraphFiles');
|
|
62
|
+
argv.push('-Deo.generateDotFiles');
|
|
63
|
+
}
|
|
64
|
+
mvnwSync(argv);
|
|
44
65
|
console.info('GMI files generated in %s', path.resolve(opts.target));
|
|
45
66
|
};
|
package/src/commands/link.js
CHANGED
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
|
|
25
25
|
const mvnwSync = require('../mvnw');
|
|
26
26
|
const path = require('path');
|
|
27
|
+
const parserVersion = require('../parser-version');
|
|
27
28
|
|
|
28
29
|
/**
|
|
29
30
|
* Command to link binaries into a single executable binary.
|
|
@@ -34,6 +35,7 @@ module.exports = function(opts) {
|
|
|
34
35
|
'jar:jar',
|
|
35
36
|
opts.verbose ? '' : '--quiet',
|
|
36
37
|
`-Deo.targetDir=${path.resolve(opts.target)}`,
|
|
38
|
+
'-Deo.version=' + (opts.parser ? opts.parser : parserVersion()),
|
|
37
39
|
]);
|
|
38
40
|
console.info('Executable JAR created at %s', path.resolve(opts.target, 'eoc.jar'));
|
|
39
41
|
};
|
package/src/eoc.js
CHANGED
|
@@ -95,10 +95,12 @@ program.command('assemble')
|
|
|
95
95
|
|
|
96
96
|
program.command('gmi')
|
|
97
97
|
.description('generate GMI files from XMIR')
|
|
98
|
-
.option('--
|
|
99
|
-
.option('--
|
|
100
|
-
.option('--
|
|
101
|
-
.option('--
|
|
98
|
+
.option('--xml', 'generate .gmi.xml files')
|
|
99
|
+
.option('--xembly', 'generate .gmi.xe files')
|
|
100
|
+
.option('--graph', 'generate .gmi.graph files')
|
|
101
|
+
.option('--dot', 'generate .gmi.dot files')
|
|
102
|
+
.option('--include <names>', 'generate GMI for these object names (using mask)')
|
|
103
|
+
.option('--exclude <names>', 'don\'t generate GMI for these objects')
|
|
102
104
|
.action((str, opts) => {
|
|
103
105
|
if (program.opts().alone == undefined) {
|
|
104
106
|
register(program.opts());
|
package/src/parser-version.js
CHANGED
|
@@ -45,6 +45,6 @@ module.exports = function() {
|
|
|
45
45
|
version = xml.metadata.versioning.release;
|
|
46
46
|
console.debug('The latest version of %s at %s is %s', repo, url, version);
|
|
47
47
|
}
|
|
48
|
-
console.
|
|
48
|
+
console.info('EO version is %s', version);
|
|
49
49
|
return version;
|
|
50
50
|
};
|
package/src/version.js
CHANGED