rlang 0.5.1 → 0.6.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.
data/lib/rlang/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Rlang
2
- VERSION = "0.5.1"
2
+ VERSION = "0.6.0"
3
3
  end
@@ -0,0 +1,16 @@
1
+ # Rlang WebAssembly compiler
2
+ # Copyright (c) 2019-2022, Laurent Julliard and contributors
3
+ # All rights reserved.
4
+
5
+ require 'wasmer'
6
+
7
+ class RString < String
8
+ # Turn a Rlang String object into a Ruby String mirror object
9
+ def initialize(wasm_instance, rlang_obj_addr)
10
+ stg_ptr = wasm_instance.exports.string_i_ptr.call(rlang_obj_addr)
11
+ stg_length = wasm_instance.exports.string_i_length.call(rlang_obj_addr)
12
+ mem8 = wasm_instance.exports.memory.uint8_view stg_ptr
13
+ ruby_stg = 0.upto(stg_length-1).collect {|i| mem8[i].chr}.join('')
14
+ super(ruby_stg)
15
+ end
16
+ end
@@ -0,0 +1,12 @@
1
+ # Rubinius WebAssembly VM
2
+ # Copyright (c) 2019, Laurent Julliard and contributors
3
+ # All rights reserved.
4
+ #
5
+ # Rlang exceptions
6
+
7
+ class RlangSyntaxError < StandardError; end
8
+
9
+ def rlse(node, msg)
10
+ msg += "\nline #{node.location.line}: #{node.location.expression.source}"
11
+ raise RlangSyntaxError, msg, []
12
+ end
data/rlang.gemspec CHANGED
@@ -10,8 +10,8 @@ Gem::Specification.new do |spec|
10
10
 
11
11
  spec.summary = %q{A (subset of) Ruby to WebAssembly compiler}
12
12
  spec.description = %q{Rlang is meant to create fast and uncluttered WebAssembly code
13
- from the comfort of the Ruby language. It is actually made of two things: a supported
14
- subset of the Ruby language and a compiler transforming this Ruby subset in a valid
13
+ from the comfort of a Ruby-like language. It is actually made of two things: the Rlang
14
+ language that supports a subset of the Ruby language and a compiler transforming this Ruby subset in a valid
15
15
  and fully runnable WebAssembly module.}
16
16
  spec.homepage = "https://github.com/ljulliar/rlang"
17
17
  spec.license = "MPL-2.0"
@@ -31,11 +31,11 @@ Gem::Specification.new do |spec|
31
31
  spec.executables << "rlang"
32
32
  spec.require_paths = ["lib"]
33
33
 
34
- spec.add_runtime_dependency 'parser'
34
+ spec.add_runtime_dependency 'parser', "~> 3.1"
35
35
 
36
36
  spec.add_development_dependency "bundler", "~> 2.0"
37
37
  spec.add_development_dependency "rake", "~> 12.0"
38
38
  spec.add_development_dependency "minitest", "~> 5.0"
39
- spec.add_development_dependency "wasmer", "~> 0.3"
39
+ spec.add_development_dependency "wasmer", "~> 1.0"
40
40
  spec.add_development_dependency "simplecov", "~> 0.18"
41
41
  end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rlang
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Laurent Julliard
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-11 00:00:00.000000000 Z
11
+ date: 2022-06-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parser
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '3.1'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: '3.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -72,14 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '0.3'
75
+ version: '1.0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '0.3'
82
+ version: '1.0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: simplecov
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -95,9 +95,9 @@ dependencies:
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0.18'
97
97
  description: "Rlang is meant to create fast and uncluttered WebAssembly code \n from
98
- the comfort of the Ruby language. It is actually made of two things: a supported
99
- \n subset of the Ruby language and a compiler transforming this Ruby subset in
100
- a valid \n and fully runnable WebAssembly module."
98
+ the comfort of a Ruby-like language. It is actually made of two things: the Rlang
99
+ \n language that supports a subset of the Ruby language and a compiler transforming
100
+ this Ruby subset in a valid \n and fully runnable WebAssembly module."
101
101
  email:
102
102
  - laurent@moldus.org
103
103
  executables:
@@ -112,6 +112,7 @@ files:
112
112
  - Gemfile
113
113
  - Gemfile.lock
114
114
  - LICENSE
115
+ - README
115
116
  - README.md
116
117
  - Rakefile
117
118
  - bin/rlang
@@ -133,6 +134,7 @@ files:
133
134
  - lib/rlang/lib/array.rb
134
135
  - lib/rlang/lib/array/array32.rb
135
136
  - lib/rlang/lib/array/array64.rb
137
+ - lib/rlang/lib/base64.rb
136
138
  - lib/rlang/lib/io.rb
137
139
  - lib/rlang/lib/kernel.rb
138
140
  - lib/rlang/lib/malloc.c
@@ -169,9 +171,11 @@ files:
169
171
  - lib/rlang/parser/wtree.rb
170
172
  - lib/rlang/parser/wtype.rb
171
173
  - lib/rlang/version.rb
174
+ - lib/ruby/mirror/rstring.rb
172
175
  - lib/simul/classes/data.rb
173
176
  - lib/simul/classes/global.rb
174
177
  - lib/simul/classes/memory.rb
178
+ - lib/utils/exceptions.rb
175
179
  - lib/utils/log.rb
176
180
  - rlang.gemspec
177
181
  homepage: https://github.com/ljulliar/rlang
@@ -196,7 +200,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
196
200
  - !ruby/object:Gem::Version
197
201
  version: '0'
198
202
  requirements: []
199
- rubygems_version: 3.0.3
203
+ rubygems_version: 3.0.9
200
204
  signing_key:
201
205
  specification_version: 4
202
206
  summary: A (subset of) Ruby to WebAssembly compiler