interscript 2.4.5 → 3.0.0

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.
Files changed (120) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +15 -0
  3. data/docs/demo/20191118-interscript-demo-cast.gif +0 -0
  4. data/exe/codemod-imp-to-isc +5 -0
  5. data/exe/diagnose_parse_failures +47 -0
  6. data/exe/interscript +2 -1
  7. data/exe/verify_isc_deep +211 -0
  8. data/exe/verify_isc_equivalence +128 -0
  9. data/interscript.gemspec +27 -20
  10. data/lib/interscript/command.rb +21 -12
  11. data/lib/interscript/compiler/javascript.rb +34 -35
  12. data/lib/interscript/compiler/json_ir.rb +214 -0
  13. data/lib/interscript/compiler/python.rb +354 -0
  14. data/lib/interscript/compiler/ruby.rb +23 -22
  15. data/lib/interscript/compiler.rb +20 -3
  16. data/lib/interscript/detector.rb +14 -7
  17. data/lib/interscript/dsl/aliases.rb +1 -1
  18. data/lib/interscript/dsl/document.rb +6 -3
  19. data/lib/interscript/dsl/group/parallel.rb +1 -1
  20. data/lib/interscript/dsl/group.rb +18 -9
  21. data/lib/interscript/dsl/items.rb +28 -16
  22. data/lib/interscript/dsl/metadata.rb +19 -18
  23. data/lib/interscript/dsl/stage.rb +1 -1
  24. data/lib/interscript/dsl/symbol_mm.rb +4 -2
  25. data/lib/interscript/dsl/tests.rb +1 -1
  26. data/lib/interscript/dsl.rb +21 -13
  27. data/lib/interscript/interpreter.rb +32 -21
  28. data/lib/interscript/isc/codemod.rb +791 -0
  29. data/lib/interscript/isc/document_builder.rb +354 -0
  30. data/lib/interscript/isc/generator.rb +191 -0
  31. data/lib/interscript/isc/grammar/concerns/aliases.rb +29 -0
  32. data/lib/interscript/isc/grammar/concerns/dependencies.rb +23 -0
  33. data/lib/interscript/isc/grammar/concerns/items.rb +176 -0
  34. data/lib/interscript/isc/grammar/concerns/metadata.rb +142 -0
  35. data/lib/interscript/isc/grammar/concerns/primitives.rb +112 -0
  36. data/lib/interscript/isc/grammar/concerns/stages.rb +129 -0
  37. data/lib/interscript/isc/grammar/concerns/system.rb +37 -0
  38. data/lib/interscript/isc/grammar/concerns/tests.rb +31 -0
  39. data/lib/interscript/isc/grammar/concerns.rb +18 -0
  40. data/lib/interscript/isc/grammar/core.rb +23 -0
  41. data/lib/interscript/isc/grammar/isc.artifact.json +1 -0
  42. data/lib/interscript/isc/grammar/isc.parg +196 -0
  43. data/lib/interscript/isc/grammar.rb +12 -0
  44. data/lib/interscript/isc/items.rb +185 -0
  45. data/lib/interscript/isc/model/alias.rb +20 -0
  46. data/lib/interscript/isc/model/constraint.rb +20 -0
  47. data/lib/interscript/isc/model/dependency.rb +19 -0
  48. data/lib/interscript/isc/model/document.rb +31 -0
  49. data/lib/interscript/isc/model/item.rb +50 -0
  50. data/lib/interscript/isc/model/rule.rb +23 -0
  51. data/lib/interscript/isc/model/stage.rb +20 -0
  52. data/lib/interscript/isc/model/stage_item.rb +33 -0
  53. data/lib/interscript/isc/model/test.rb +21 -0
  54. data/lib/interscript/isc/model.rb +19 -0
  55. data/lib/interscript/isc/node_adapter.rb +310 -0
  56. data/lib/interscript/isc/normalizer.rb +127 -0
  57. data/lib/interscript/isc/parser.rb +78 -0
  58. data/lib/interscript/isc/serializer.rb +248 -0
  59. data/lib/interscript/isc/transform.rb +138 -0
  60. data/lib/interscript/isc/yaml_bridge.rb +236 -0
  61. data/lib/interscript/isc.rb +30 -0
  62. data/lib/interscript/ml/byt5_onnx.rb +102 -0
  63. data/lib/interscript/ml/imf.rb +182 -0
  64. data/lib/interscript/ml/model.rb +52 -0
  65. data/lib/interscript/ml/provisioning.rb +189 -0
  66. data/lib/interscript/ml/translator.rb +38 -0
  67. data/lib/interscript/ml/vocab.rb +48 -0
  68. data/lib/interscript/ml.rb +25 -0
  69. data/lib/interscript/node/alias_def.rb +5 -5
  70. data/lib/interscript/node/dependency.rb +7 -7
  71. data/lib/interscript/node/document.rb +10 -10
  72. data/lib/interscript/node/group.rb +11 -9
  73. data/lib/interscript/node/item/alias.rb +14 -10
  74. data/lib/interscript/node/item/any.rb +14 -7
  75. data/lib/interscript/node/item/capture.rb +14 -9
  76. data/lib/interscript/node/item/group.rb +22 -17
  77. data/lib/interscript/node/item/repeat.rb +3 -3
  78. data/lib/interscript/node/item/stage.rb +4 -5
  79. data/lib/interscript/node/item/string.rb +18 -13
  80. data/lib/interscript/node/item.rb +27 -17
  81. data/lib/interscript/node/metadata.rb +6 -5
  82. data/lib/interscript/node/rule/funcall.rb +4 -5
  83. data/lib/interscript/node/rule/run.rb +4 -5
  84. data/lib/interscript/node/rule/sub.rb +55 -55
  85. data/lib/interscript/node/rule.rb +6 -5
  86. data/lib/interscript/node/stage.rb +11 -14
  87. data/lib/interscript/node/tests.rb +6 -6
  88. data/lib/interscript/node.rb +14 -17
  89. data/lib/interscript/stdlib/functions/rababa_adapter.rb +56 -0
  90. data/lib/interscript/stdlib/functions/secryst_adapter.rb +37 -0
  91. data/lib/interscript/stdlib/functions.rb +49 -0
  92. data/lib/interscript/stdlib.rb +25 -95
  93. data/lib/interscript/utils/helpers.rb +8 -5
  94. data/lib/interscript/utils/regexp_converter.rb +143 -144
  95. data/lib/interscript/version.rb +1 -1
  96. data/lib/interscript/visualize/json.rb +12 -13
  97. data/lib/interscript/visualize/nodes.rb +13 -13
  98. data/lib/interscript/visualize.rb +18 -18
  99. data/lib/interscript.rb +59 -45
  100. metadata +88 -31
  101. data/.github/workflows/assets.yml +0 -91
  102. data/.github/workflows/rake.yml +0 -52
  103. data/.github/workflows/release.yml +0 -68
  104. data/.gitignore +0 -79
  105. data/.rspec +0 -3
  106. data/Gemfile +0 -38
  107. data/Rakefile +0 -139
  108. data/bin/console +0 -10
  109. data/bin/interscript +0 -5
  110. data/bin/maps_analyze_staging +0 -168
  111. data/bin/maps_debug_compilers +0 -58
  112. data/bin/maps_debug_ordering +0 -88
  113. data/bin/maps_debug_ruby_compile +0 -24
  114. data/bin/maps_debug_step_by_step +0 -44
  115. data/bin/maps_optimize_order +0 -112
  116. data/bin/maps_v1_analyze_regexps +0 -45
  117. data/bin/maps_v1_to_v2 +0 -426
  118. data/bin/set_version +0 -16
  119. data/bin/setup +0 -8
  120. data/requirements.txt +0 -1
@@ -1,21 +1,21 @@
1
- require 'erb'
2
- require 'interscript/visualize/nodes'
3
- require 'interscript/visualize/json'
4
-
5
- def h(str)
6
- str.to_s.gsub("&", "&amp;").gsub("<", "&lt;").gsub(">", "&gt;").gsub('"', "&quot;")
7
- end
1
+ require "erb"
8
2
 
9
3
  class Interscript::Visualize
4
+ autoload :Nodes, "interscript/visualize/nodes"
5
+ autoload :JSON, "interscript/visualize/json"
6
+
10
7
  def self.def_template(template)
11
- @template = ERB.new(File.read(__dir__+"/visualize/#{template}.html.erb"))
8
+ @template = ERB.new(File.read(__dir__ + "/visualize/#{template}.html.erb"))
9
+ end
10
+
11
+ def get_binding
12
+ binding
12
13
  end
13
- def get_binding; binding; end
14
14
 
15
15
  def self.call(*args)
16
- return Map.(*args) if self == Interscript::Visualize
16
+ return Map.call(*args) if self == Interscript::Visualize
17
17
 
18
- tplctx = self.new(*args)
18
+ tplctx = new(*args)
19
19
  @template.result(tplctx.get_binding)
20
20
  end
21
21
 
@@ -29,14 +29,14 @@ class Interscript::Visualize
29
29
  attr_reader :map
30
30
 
31
31
  def render_stage(map_name, stage)
32
- Stage.(map_name, stage)
32
+ Stage.call(map_name, stage)
33
33
  end
34
34
  end
35
35
 
36
36
  class Group < self
37
37
  def_template :group
38
38
 
39
- def initialize(map, group, style=nil)
39
+ def initialize(map, group, style = nil)
40
40
  @map = map
41
41
  @group = group
42
42
  @style = style
@@ -44,18 +44,18 @@ class Interscript::Visualize
44
44
 
45
45
  attr_reader :map, :group
46
46
 
47
- def render_group(map, group, style=nil)
48
- Group.(map, group, style)
47
+ def render_group(map, group, style = nil)
48
+ Group.call(map, group, style)
49
49
  end
50
50
  end
51
51
 
52
52
  class Stage < Group
53
53
  def_template :group
54
54
 
55
- def initialize(map_name, stage_name, style=nil)
55
+ def initialize(map_name, stage_name, style = nil)
56
56
  @map = Interscript.parse(map_name)
57
57
  @group = map.stages[stage_name]
58
58
  @style = style
59
59
  end
60
- end
61
- end
60
+ end
61
+ end
data/lib/interscript.rb CHANGED
@@ -1,7 +1,19 @@
1
- require "interscript/version"
2
1
  require "yaml"
3
2
 
4
3
  module Interscript
4
+ # Autoload all internal library code. No require_relative or internal
5
+ # require calls — everything loads lazily via autoload (OCP: adding a
6
+ # new child module = adding one autoload line here).
7
+ autoload :VERSION, "interscript/version"
8
+ autoload :Stdlib, "interscript/stdlib"
9
+ autoload :Compiler, "interscript/compiler"
10
+ autoload :Interpreter, "interscript/interpreter"
11
+ autoload :DSL, "interscript/dsl"
12
+ autoload :Node, "interscript/node"
13
+ autoload :Detector, "interscript/detector"
14
+ autoload :Isc, "interscript/isc"
15
+ autoload :ML, "interscript/ml"
16
+
5
17
  # An error caused by a lack of some map
6
18
  class MapNotFoundError < StandardError; end
7
19
  # An error caused by a missing dependency
@@ -13,15 +25,15 @@ module Interscript
13
25
 
14
26
  class << self
15
27
  def load_path
16
- @load_path ||= ['.', *Interscript.map_locations]
28
+ @load_path ||= [".", *Interscript.map_locations]
17
29
  end
18
30
 
19
31
  def locate map_name
20
32
  map_name = map_aliases[map_name] if map_aliases.include? map_name
21
33
 
22
34
  load_path.each do |i|
23
- # iml is an extension for a library, imp for a map
24
- ["iml", "imp"].each do |ext|
35
+ # isc: new ISC format, iml: library, imp: legacy Ruby DSL
36
+ ["isc", "iml", "imp"].each do |ext|
25
37
  f = File.expand_path("#{map_name}.#{ext}", i)
26
38
  return f if File.exist?(f)
27
39
  end
@@ -33,26 +45,26 @@ module Interscript
33
45
  Interscript::DSL.parse(map_name)
34
46
  end
35
47
 
36
- def load(system_code, maps={}, compiler: Interscript::Interpreter)
37
- maps[[system_code, compiler.name]] ||= compiler.(system_code)
48
+ def load(system_code, maps = {}, compiler: Interscript::Interpreter)
49
+ maps[[system_code, compiler.name]] ||= compiler.call(system_code)
38
50
  end
39
51
 
40
52
  # Transliterates the string.
41
- def transliterate(system_code, string, maps={}, compiler: Interscript::Interpreter)
53
+ def transliterate(system_code, string, maps = {}, compiler: Interscript::Interpreter)
42
54
  # The current best implementation is Interpreter
43
- load(system_code, maps, compiler: compiler).(string)
55
+ load(system_code, maps, compiler: compiler).call(string)
44
56
  end
45
57
 
46
58
  # Gives each possible value of the transliteration.
47
- def transliterate_each(system_code, string, maps={}, &block)
48
- load(system_code, maps).(string, each: true, &block)
59
+ def transliterate_each(system_code, string, maps = {}, &block)
60
+ load(system_code, maps).call(string, each: true, &block)
49
61
  end
50
62
 
51
- def transliterate_file(system_code, input_file, output_file, maps={})
63
+ def transliterate_file(system_code, input_file, output_file, maps = {}, compiler: Interscript::Interpreter)
52
64
  input = File.read(input_file)
53
- output = transliterate(system_code, input, maps)
65
+ output = transliterate(system_code, input, maps, compiler: compiler)
54
66
 
55
- File.open(output_file, 'w') do |f|
67
+ File.open(output_file, "w") do |f|
56
68
  f.puts(output)
57
69
  end
58
70
 
@@ -67,17 +79,17 @@ module Interscript
67
79
  def detect(source, destination, **kwargs)
68
80
  detector = Detector.new
69
81
  detector.set_from_kwargs(**kwargs)
70
- detector.(source, destination)
82
+ detector.call(source, destination)
71
83
  end
72
84
 
73
85
  def map_gems
74
- @map_gems ||= Gem.find_latest_files('interscript-maps.yaml').map do |i|
86
+ @map_gems ||= Gem.find_latest_files("interscript-maps.yaml").map do |i|
75
87
  [i, YAML.load_file(i)]
76
88
  end.to_h
77
89
  end
78
90
 
79
91
  def map_locations
80
- @map_locations ||= map_gems.map do |i,v|
92
+ @map_locations ||= map_gems.map do |i, v|
81
93
  paths = v["paths"].dup
82
94
  paths += v["staging"] if ENV["INTERSCRIPT_STAGING"] && v["staging"]
83
95
 
@@ -88,15 +100,15 @@ module Interscript
88
100
  end
89
101
 
90
102
  def secryst_index_locations
91
- @secryst_index_locations ||= map_gems.map do |i,v|
103
+ @secryst_index_locations ||= map_gems.map do |i, v|
92
104
  v["secryst-models"]
93
105
  end.compact.flatten
94
106
  end
95
107
 
96
108
  def rababa_configs
97
- @rababa_configs ||= map_gems.map do |i,v|
109
+ @rababa_configs ||= map_gems.map do |i, v|
98
110
  v["rababa-configs"]
99
- end.compact.inject({}) do |a,b|
111
+ end.compact.inject({}) do |a, b|
100
112
  a.merge(b)
101
113
  end
102
114
  end
@@ -104,8 +116,8 @@ module Interscript
104
116
  # This code is borrowed from Secryst and should end up in Rababa, but for now,
105
117
  # let's keep it here.
106
118
  def rababa_provision(model_name, model_uri)
107
- require 'fileutils'
108
- require 'open-uri'
119
+ require "fileutils"
120
+ require "open-uri"
109
121
 
110
122
  # We provision the environment in the following way:
111
123
  # First, we try the RABABA_DATA environment variable. If that's available,
@@ -125,29 +137,30 @@ module Interscript
125
137
 
126
138
  ([ENV["RABABA_DATA"]] + possible_paths).compact.each do |path|
127
139
  FileUtils.mkdir_p(path)
128
- write_path = path unless write_path
140
+ write_path = path
141
+ break
129
142
  rescue
130
143
  end
131
-
144
+
132
145
  raise ExternalUtilError, "Can't find a writable path for Rababa. Consider setting a RABABA_DATA environment variable" unless write_path
133
146
 
134
147
  model_path = "#{write_path}/model-#{model_name}.onnx"
135
148
 
136
149
  # Redownload every hour
137
- if File.exist?(model_path) && File.mtime(model_path) + 3600 >= Time.now
138
- return model_path
139
- else
140
- data = URI.open(model_uri).read
141
- File.write(model_path, data)
142
- return model_path
150
+ unless File.exist?(model_path) && File.mtime(model_path) + 3600 >= Time.now
151
+ # standard:disable Security/Open (fetches a fixed interscript-hosted model URI, not user input)
152
+ data = URI.open(model_uri, encoding: "BINARY").read
153
+ # standard:enable Security/Open
154
+ File.binwrite(model_path, data)
143
155
  end
156
+ model_path
144
157
  end
145
158
 
146
159
  def map_aliases
147
160
  return @map_aliases if @map_aliases
148
161
 
149
162
  @map_aliases = {}
150
- map_gems.each do |i,v|
163
+ map_gems.each do |i, v|
151
164
  (v["aliases"] || {}).each do |code, value|
152
165
  value.each do |al, map|
153
166
  @map_aliases[al] = map["alias_to"]
@@ -160,20 +173,31 @@ module Interscript
160
173
  # List all possible maps to use
161
174
  def maps(basename: true, load_path: false, select: "*", libraries: false)
162
175
  paths = load_path ? Interscript.load_path : Interscript.map_locations
163
- ext = libraries ? "iml" : "imp"
176
+ # isc: the ISC corpus (systems and libraries), imp: legacy Ruby
177
+ # DSL systems, iml: legacy library format. ISC wins when a name
178
+ # exists in both.
179
+ exts = libraries ? %w[isc iml] : %w[isc imp]
164
180
 
165
- imps = paths.map { |i| Dir["#{i}/#{select}.#{ext}"] }.flatten
181
+ files = paths.flat_map { |i| exts.flat_map { |ext| Dir["#{i}/#{select}.#{ext}"] } }
182
+ # The maps corpus keeps dependency libraries in a libs/ directory;
183
+ # only the libraries: query sees them.
184
+ libs, systems = files.partition { |j| j.include?("/libs/") }
185
+ picked = (libraries ? libs : systems)
186
+ .group_by { |j| File.basename(j, ".*") }
187
+ .values
188
+ .map(&:first)
189
+ .sort
166
190
 
167
- basename ? imps.map { |j| File.basename(j, ".#{ext}") } : imps
191
+ basename ? picked.map { |j| File.basename(j, ".*") } : picked
168
192
  end
169
193
 
170
194
  # Removes the excluded maps for a given compiler and RUBY_PLATFORM.
171
195
  # To be used by tests
172
196
  # and builders. It uses the `skip` directive in interscript-maps.yaml
173
197
  def exclude_maps(maps, compiler:, platform: true)
174
- map_gems.each do |i,v|
198
+ map_gems.each do |i, v|
175
199
  [compiler.name, (Gem::Platform.local.os if platform)].compact.each do |name|
176
- skips = v.dig('skip', name) || []
200
+ skips = v.dig("skip", name) || []
177
201
  skips.each do |skip|
178
202
  skip_re = /#{Regexp.escape(skip).gsub("\\*", ".*?")}/
179
203
  maps = maps.grep_v(skip_re)
@@ -184,13 +208,3 @@ module Interscript
184
208
  end
185
209
  end
186
210
  end
187
-
188
- require 'interscript/stdlib'
189
-
190
- require "interscript/compiler"
191
- require "interscript/interpreter"
192
-
193
- require 'interscript/dsl'
194
- require 'interscript/node'
195
-
196
- require 'interscript/detector'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: interscript
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.5
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-11-17 00:00:00.000000000 Z
11
+ date: 2026-10-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 2.4.0a
33
+ version: '2.5'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 2.4.0a
40
+ version: '2.5'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: text
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -52,35 +52,40 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
- description: Interoperable script conversion systems
55
+ - !ruby/object:Gem::Dependency
56
+ name: parsanol
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: 1.3.61
62
+ - - "<"
63
+ - !ruby/object:Gem::Version
64
+ version: '2'
65
+ type: :runtime
66
+ prerelease: false
67
+ version_requirements: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: 1.3.61
72
+ - - "<"
73
+ - !ruby/object:Gem::Version
74
+ version: '2'
75
+ description: Interoperable script conversion systems.
56
76
  email:
57
77
  - open.source@ribose.com
58
78
  executables:
79
+ - codemod-imp-to-isc
80
+ - diagnose_parse_failures
59
81
  - interscript
82
+ - verify_isc_deep
83
+ - verify_isc_equivalence
60
84
  extensions: []
61
85
  extra_rdoc_files: []
62
86
  files:
63
- - ".github/workflows/assets.yml"
64
- - ".github/workflows/rake.yml"
65
- - ".github/workflows/release.yml"
66
- - ".gitignore"
67
- - ".rspec"
68
- - Gemfile
69
87
  - LICENSE.adoc
70
88
  - README.md
71
- - Rakefile
72
- - bin/console
73
- - bin/interscript
74
- - bin/maps_analyze_staging
75
- - bin/maps_debug_compilers
76
- - bin/maps_debug_ordering
77
- - bin/maps_debug_ruby_compile
78
- - bin/maps_debug_step_by_step
79
- - bin/maps_optimize_order
80
- - bin/maps_v1_analyze_regexps
81
- - bin/maps_v1_to_v2
82
- - bin/set_version
83
- - bin/setup
84
89
  - docs/demo/20191118-interscript-demo-cast.gif
85
90
  - docs/samples/ara-Arab.txt
86
91
  - docs/samples/chn-Hant.txt
@@ -95,12 +100,18 @@ files:
95
100
  - docs/samples/rus-Cyrl.txt
96
101
  - docs/samples/thai.txt
97
102
  - docs/utils/regexp_examples.txt
103
+ - exe/codemod-imp-to-isc
104
+ - exe/diagnose_parse_failures
98
105
  - exe/interscript
106
+ - exe/verify_isc_deep
107
+ - exe/verify_isc_equivalence
99
108
  - interscript.gemspec
100
109
  - lib/interscript.rb
101
110
  - lib/interscript/command.rb
102
111
  - lib/interscript/compiler.rb
103
112
  - lib/interscript/compiler/javascript.rb
113
+ - lib/interscript/compiler/json_ir.rb
114
+ - lib/interscript/compiler/python.rb
104
115
  - lib/interscript/compiler/ruby.rb
105
116
  - lib/interscript/detector.rb
106
117
  - lib/interscript/dsl.rb
@@ -114,6 +125,47 @@ files:
114
125
  - lib/interscript/dsl/symbol_mm.rb
115
126
  - lib/interscript/dsl/tests.rb
116
127
  - lib/interscript/interpreter.rb
128
+ - lib/interscript/isc.rb
129
+ - lib/interscript/isc/codemod.rb
130
+ - lib/interscript/isc/document_builder.rb
131
+ - lib/interscript/isc/generator.rb
132
+ - lib/interscript/isc/grammar.rb
133
+ - lib/interscript/isc/grammar/concerns.rb
134
+ - lib/interscript/isc/grammar/concerns/aliases.rb
135
+ - lib/interscript/isc/grammar/concerns/dependencies.rb
136
+ - lib/interscript/isc/grammar/concerns/items.rb
137
+ - lib/interscript/isc/grammar/concerns/metadata.rb
138
+ - lib/interscript/isc/grammar/concerns/primitives.rb
139
+ - lib/interscript/isc/grammar/concerns/stages.rb
140
+ - lib/interscript/isc/grammar/concerns/system.rb
141
+ - lib/interscript/isc/grammar/concerns/tests.rb
142
+ - lib/interscript/isc/grammar/core.rb
143
+ - lib/interscript/isc/grammar/isc.artifact.json
144
+ - lib/interscript/isc/grammar/isc.parg
145
+ - lib/interscript/isc/items.rb
146
+ - lib/interscript/isc/model.rb
147
+ - lib/interscript/isc/model/alias.rb
148
+ - lib/interscript/isc/model/constraint.rb
149
+ - lib/interscript/isc/model/dependency.rb
150
+ - lib/interscript/isc/model/document.rb
151
+ - lib/interscript/isc/model/item.rb
152
+ - lib/interscript/isc/model/rule.rb
153
+ - lib/interscript/isc/model/stage.rb
154
+ - lib/interscript/isc/model/stage_item.rb
155
+ - lib/interscript/isc/model/test.rb
156
+ - lib/interscript/isc/node_adapter.rb
157
+ - lib/interscript/isc/normalizer.rb
158
+ - lib/interscript/isc/parser.rb
159
+ - lib/interscript/isc/serializer.rb
160
+ - lib/interscript/isc/transform.rb
161
+ - lib/interscript/isc/yaml_bridge.rb
162
+ - lib/interscript/ml.rb
163
+ - lib/interscript/ml/byt5_onnx.rb
164
+ - lib/interscript/ml/imf.rb
165
+ - lib/interscript/ml/model.rb
166
+ - lib/interscript/ml/provisioning.rb
167
+ - lib/interscript/ml/translator.rb
168
+ - lib/interscript/ml/vocab.rb
117
169
  - lib/interscript/node.rb
118
170
  - lib/interscript/node/alias_def.rb
119
171
  - lib/interscript/node/dependency.rb
@@ -137,6 +189,9 @@ files:
137
189
  - lib/interscript/node/stage.rb
138
190
  - lib/interscript/node/tests.rb
139
191
  - lib/interscript/stdlib.rb
192
+ - lib/interscript/stdlib/functions.rb
193
+ - lib/interscript/stdlib/functions/rababa_adapter.rb
194
+ - lib/interscript/stdlib/functions/secryst_adapter.rb
140
195
  - lib/interscript/utils/helpers.rb
141
196
  - lib/interscript/utils/regexp_converter.rb
142
197
  - lib/interscript/version.rb
@@ -145,14 +200,16 @@ files:
145
200
  - lib/interscript/visualize/json.rb
146
201
  - lib/interscript/visualize/map.html.erb
147
202
  - lib/interscript/visualize/nodes.rb
148
- - requirements.txt
149
203
  homepage: https://www.interscript.com
150
204
  licenses:
151
205
  - BSD-2-Clause
152
206
  metadata:
153
207
  homepage_uri: https://www.interscript.com
154
- source_code_uri: https://github.com/interscript/interscript
155
- post_install_message:
208
+ source_code_uri: https://github.com/interscript/interscript-ruby
209
+ changelog_uri: https://github.com/interscript/interscript-ruby/releases
210
+ bug_tracker_uri: https://github.com/interscript/interscript-ruby/issues
211
+ rubygems_mfa_required: 'true'
212
+ post_install_message:
156
213
  rdoc_options: []
157
214
  require_paths:
158
215
  - lib
@@ -160,15 +217,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
160
217
  requirements:
161
218
  - - ">="
162
219
  - !ruby/object:Gem::Version
163
- version: 2.3.0
220
+ version: 3.3.0
164
221
  required_rubygems_version: !ruby/object:Gem::Requirement
165
222
  requirements:
166
223
  - - ">="
167
224
  - !ruby/object:Gem::Version
168
225
  version: '0'
169
226
  requirements: []
170
- rubygems_version: 3.2.33
171
- signing_key:
227
+ rubygems_version: 3.5.22
228
+ signing_key:
172
229
  specification_version: 4
173
230
  summary: Interoperable script conversion systems
174
231
  test_files: []
@@ -1,91 +0,0 @@
1
- name: release-assets
2
-
3
- on:
4
- push:
5
- tags:
6
- - 'v*'
7
- workflow_dispatch:
8
-
9
- jobs:
10
- assets:
11
- runs-on: ubuntu-latest
12
- env:
13
- BUNDLE_WITHOUT: "secryst:jsexec"
14
- SKIP_JS: "1"
15
- steps:
16
- - name: Checkout repository
17
- uses: actions/checkout@v2
18
- with:
19
- repository: interscript/interscript
20
-
21
- - name: Run bootstrap script
22
- run: ruby bootstrap.rb
23
-
24
- - name: Use Ruby
25
- uses: ruby/setup-ruby@v1
26
- with:
27
- ruby-version: "3.0"
28
- bundler-cache: true
29
-
30
- - name: Install bundle
31
- working-directory: ./ruby
32
- run: bundle install --jobs 4 --retry 3 --with jsexec --without secryst
33
-
34
- - name: Generate visualization json
35
- working-directory: ./ruby
36
- run: bundle exec rake generate_visualization_json
37
-
38
- - name: Archive json files from the previous step
39
- uses: thedoctor0/zip-release@master
40
- with:
41
- filename: 'vis_json.zip'
42
- path: ./vis_json/*.json
43
- directory: ./ruby/
44
- exclusions: '*.git*'
45
- type: zip
46
-
47
- - name: Upload artifacts
48
- id: upload_vis_json
49
- uses: svenstaro/upload-release-action@2.2.1
50
- with:
51
- repo_token: ${{ secrets.GITHUB_TOKEN }}
52
- file: ruby/vis_json.zip
53
- file_glob: true
54
- tag: ${{ github.ref }}
55
- overwrite: true
56
-
57
- - name: Generate metadata
58
- working-directory: ./ruby
59
- run: bundle exec rake generate_metadata_json
60
-
61
- - name: Archive metadata from the previous step
62
- uses: thedoctor0/zip-release@master
63
- with:
64
- filename: 'metadata.zip'
65
- path: ./metadata.json
66
- directory: ./ruby/
67
- exclusions: '*.git*'
68
- type: zip
69
-
70
- - name: Upload metadata
71
- id: upload_metadata
72
- uses: svenstaro/upload-release-action@2.2.1
73
- with:
74
- repo_token: ${{ secrets.GITHUB_TOKEN }}
75
- file: ruby/metadata.zip
76
- asset_name: metadata.json.zip
77
- tag: ${{ github.ref }}
78
- overwrite: true
79
-
80
- - name: Output link
81
- run: |
82
- echo ${{ steps.upload_vis_json.outputs.browser_download_url }}
83
- echo ${{ steps.upload_metadata.outputs.browser_download_url }}
84
-
85
- # - name: Trigger deploy at interscript.org
86
- # uses: peter-evans/repository-dispatch@v1
87
- # with:
88
- # token: ${{ secrets.INTERSCRIPT_CI_TOKEN }}
89
- # repository: interscript/interscript.org
90
- # event-type: ${{ github.repository }}
91
- # client-payload: '{ "ref": "${{ github.ref }}" }'
@@ -1,52 +0,0 @@
1
- name: rake
2
-
3
- on:
4
- push:
5
- branches: [ main, v*, ci-check ]
6
- tags: [ v* ]
7
- pull_request:
8
-
9
- jobs:
10
- rspec:
11
- name: Test on Ruby ${{ matrix.ruby }} ${{ matrix.os }}
12
- runs-on: ${{ matrix.os }}
13
- continue-on-error: true
14
- strategy:
15
- fail-fast: false
16
- matrix:
17
- ruby: [ "3.0", 2.7, 2.6 ]
18
- os: [ ubuntu-latest, windows-latest, macos-latest ]
19
- include:
20
- - ruby: "3.1"
21
- os: 'ubuntu-latest'
22
- - ruby: "3.2"
23
- os: 'ubuntu-latest'
24
- - ruby: "3.1"
25
- os: 'macos-latest'
26
- - ruby: "3.2"
27
- os: 'macos-latest'
28
-
29
- env:
30
- BUNDLE_WITHOUT: "secryst"
31
- SKIP_JS: "1"
32
-
33
- steps:
34
- - name: Checkout repository
35
- uses: actions/checkout@v2
36
- with:
37
- repository: interscript/interscript
38
-
39
- - name: Run bootstrap script
40
- run: ruby bootstrap.rb
41
-
42
- - name: Use Ruby
43
- uses: ruby/setup-ruby@v1
44
- with:
45
- ruby-version: ${{ matrix.ruby }}
46
- bundler-cache: true
47
-
48
- - name: Run RSpecs
49
- working-directory: ./ruby
50
- run: |
51
- bundle install --with=jsexec
52
- bundle exec rspec -f f