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 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
@@ -26,5 +26,5 @@
26
26
  as-int.
27
27
  QQ.math.number
28
28
  times.
29
- QQ.math.random
29
+ QQ.math.random.pseudo
30
30
  100.0
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.6.2</version>
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.6.2</version>
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.10.1</version>
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.2.2</version>
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.2",
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.9",
26
+ "fast-xml-parser": "4.0.10",
27
27
  "xmlhttprequest": "1.8.0"
28
28
  },
29
29
  "devDependencies": {
30
- "eslint": "5.16.0",
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": "21.1.0",
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
@@ -2,5 +2,6 @@
2
2
  "$schema": "https://docs.renovatebot.com/renovate-schema.json",
3
3
  "extends": [
4
4
  "config:base"
5
- ]
5
+ ],
6
+ "ignoreDeps": ["maven-compiler-plugin", "eo-maven-plugin"]
6
7
  }
@@ -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
  };
@@ -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
- mvnwSync([
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
  };
@@ -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('--gmi-xml', 'generate .gmi.xml files')
99
- .option('--gmi-xembly', 'generate .gmi.xe files')
100
- .option('--gmi-graph', 'generate .gmi.graph files')
101
- .option('--gmi-dot', 'generate .gmi.dot files')
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());
@@ -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.debug('Current version of %s is %s', repo, version);
48
+ console.info('EO version is %s', version);
49
49
  return version;
50
50
  };
package/src/version.js CHANGED
@@ -22,4 +22,4 @@
22
22
  * SOFTWARE.
23
23
  */
24
24
 
25
- module.exports = '0.8.2';
25
+ module.exports = '0.8.4';