opal 1.3.0.alpha1 → 1.3.0.rc1
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/.github/workflows/build.yml +3 -1
- data/UNRELEASED.md +29 -6
- data/examples/rack/Gemfile +1 -0
- data/examples/rack/Gemfile.lock +11 -7
- data/examples/rack-esm/.gitignore +1 -0
- data/examples/rack-esm/Gemfile +5 -0
- data/examples/rack-esm/app/application.rb +27 -0
- data/examples/rack-esm/app/user.rb +24 -0
- data/examples/rack-esm/config.ru +25 -0
- data/examples/rack-esm/index.html.erb +11 -0
- data/examples/sinatra/Gemfile.lock +21 -19
- data/lib/opal/builder.rb +39 -23
- data/lib/opal/builder_processors.rb +6 -1
- data/lib/opal/cache/file_cache.rb +7 -6
- data/lib/opal/cli_runners/chrome.rb +20 -15
- data/lib/opal/cli_runners/chrome_cdp_interface.rb +1 -1
- data/lib/opal/cli_runners/nodejs.rb +3 -2
- data/lib/opal/cli_runners/quickjs.rb +28 -0
- data/lib/opal/cli_runners.rb +1 -0
- data/lib/opal/compiler.rb +8 -2
- data/lib/opal/config.rb +5 -0
- data/lib/opal/nodes/call.rb +45 -26
- data/lib/opal/nodes/helpers.rb +1 -1
- data/lib/opal/nodes/top.rb +5 -8
- data/lib/opal/rewriters/rubyspec/filters_rewriter.rb +16 -0
- data/lib/opal/simple_server.rb +7 -2
- data/lib/opal/util.rb +1 -1
- data/lib/opal/version.rb +1 -1
- data/opal/corelib/complex/base.rb +15 -0
- data/opal/corelib/complex.rb +3 -15
- data/opal/corelib/constants.rb +2 -2
- data/opal/corelib/error.rb +1 -1
- data/opal/corelib/helpers.rb +10 -0
- data/opal/corelib/io.rb +4 -0
- data/opal/corelib/kernel.rb +21 -5
- data/opal/corelib/main.rb +4 -0
- data/opal/corelib/method.rb +4 -0
- data/opal/corelib/module.rb +39 -16
- data/opal/corelib/pattern_matching/base.rb +35 -0
- data/opal/corelib/pattern_matching.rb +2 -36
- data/opal/corelib/process/base.rb +9 -0
- data/opal/corelib/process.rb +1 -11
- data/opal/corelib/random.rb +4 -0
- data/opal/corelib/rational/base.rb +11 -0
- data/opal/corelib/rational.rb +3 -10
- data/opal/corelib/regexp.rb +1 -1
- data/opal/corelib/runtime.js +38 -3
- data/opal/opal/full.rb +5 -4
- data/opal/opal.rb +12 -11
- data/package.json +1 -1
- data/spec/filters/bugs/bigdecimal.rb +0 -1
- data/spec/filters/bugs/enumerator.rb +5 -0
- data/spec/filters/bugs/float.rb +3 -0
- data/spec/filters/bugs/kernel.rb +2 -9
- data/spec/filters/bugs/language.rb +0 -1
- data/spec/filters/bugs/marshal.rb +3 -0
- data/spec/filters/bugs/method.rb +1 -2
- data/spec/filters/bugs/module.rb +0 -6
- data/spec/filters/bugs/rational.rb +1 -0
- data/spec/filters/bugs/regexp.rb +0 -1
- data/spec/lib/compiler_spec.rb +2 -2
- data/spec/mspec-opal/runner.rb +1 -0
- data/stdlib/benchmark.rb +14 -0
- data/stdlib/buffer.rb +4 -0
- data/stdlib/nashorn/file.rb +2 -0
- data/stdlib/native.rb +63 -58
- data/stdlib/nodejs/argf.rb +110 -0
- data/stdlib/nodejs/env.rb +12 -0
- data/stdlib/nodejs/file.rb +10 -0
- data/stdlib/nodejs/kernel.rb +56 -0
- data/stdlib/nodejs.rb +1 -0
- data/stdlib/opal/platform.rb +2 -0
- data/stdlib/opal-platform.rb +5 -2
- data/stdlib/pathname.rb +4 -0
- data/stdlib/quickjs/io.rb +22 -0
- data/stdlib/quickjs/kernel.rb +5 -0
- data/stdlib/quickjs.rb +2 -0
- data/stdlib/securerandom.rb +2 -0
- data/tasks/performance.rake +2 -1
- data/tasks/testing.rake +1 -1
- metadata +36 -8
- data/lib/opal/cli_runners/chrome_cdp_interface.js +0 -30285
data/stdlib/nodejs/env.rb
CHANGED
data/stdlib/nodejs/file.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'corelib/file'
|
2
|
+
|
1
3
|
%x{
|
2
4
|
var warnings = {}, errno_code, errno_codes = [
|
3
5
|
'EACCES',
|
@@ -146,6 +148,14 @@ class File < IO
|
|
146
148
|
data.size
|
147
149
|
end
|
148
150
|
|
151
|
+
def self.delete(path)
|
152
|
+
`executeIOAction(function(){return __fs__.unlinkSync(#{path})})`
|
153
|
+
end
|
154
|
+
|
155
|
+
class << self
|
156
|
+
alias unlink delete
|
157
|
+
end
|
158
|
+
|
149
159
|
def self.exist?(path)
|
150
160
|
path = path.path if path.respond_to? :path
|
151
161
|
`return executeIOAction(function(){return __fs__.existsSync(#{path})})`
|
data/stdlib/nodejs/kernel.rb
CHANGED
@@ -1,13 +1,69 @@
|
|
1
|
+
require 'native'
|
2
|
+
|
1
3
|
`Opal.exit = process.exit`
|
2
4
|
|
3
5
|
module Kernel
|
4
6
|
NODE_REQUIRE = `require`
|
5
7
|
|
8
|
+
@__child_process__ = `require('child_process')`
|
9
|
+
`var __child_process__ = #{@__child_process__}`
|
10
|
+
|
6
11
|
# @deprecated Please use `require('module')` instead
|
7
12
|
def node_require(path)
|
8
13
|
warn '[DEPRECATION] node_require is deprecated. Please use `require(\'module\')` instead.'
|
9
14
|
`#{NODE_REQUIRE}(#{path.to_str})`
|
10
15
|
end
|
16
|
+
|
17
|
+
def system(*argv, exception: false)
|
18
|
+
env = {}
|
19
|
+
env = argv.shift if argv.first.is_a? Hash
|
20
|
+
env = ENV.merge(env).to_n
|
21
|
+
cmdname = argv.shift
|
22
|
+
|
23
|
+
out = if argv.empty?
|
24
|
+
`__child_process__.spawnSync(#{cmdname}, { shell: true, stdio: 'inherit', env: #{env} })`
|
25
|
+
elsif Array === cmdname
|
26
|
+
`__child_process__.spawnSync(#{cmdname[0]}, #{argv}, { argv0: #{cmdname[1]}, stdio: 'inherit', env: #{env} })`
|
27
|
+
else
|
28
|
+
`__child_process__.spawnSync(#{cmdname}, #{argv}, { stdio: 'inherit', env: #{env} })`
|
29
|
+
end
|
30
|
+
|
31
|
+
status = out.JS[:status]
|
32
|
+
status = 127 if `status === null`
|
33
|
+
pid = out.JS[:pid]
|
34
|
+
|
35
|
+
$? = Process::Status.new(status, pid)
|
36
|
+
raise "Command failed with exit #{status}: #{cmdname}" if exception && status != 0
|
37
|
+
status == 0
|
38
|
+
end
|
39
|
+
|
40
|
+
def `(cmdline)
|
41
|
+
Buffer.new(`__child_process__.execSync(#{cmdline})`).to_s.encode('UTF-8')
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
module Process
|
46
|
+
class Status
|
47
|
+
def initialize(status, pid)
|
48
|
+
@status, @pid = status, pid
|
49
|
+
end
|
50
|
+
|
51
|
+
def exitstatus
|
52
|
+
@status
|
53
|
+
end
|
54
|
+
|
55
|
+
attr_reader :pid
|
56
|
+
|
57
|
+
def success?
|
58
|
+
@status == 0
|
59
|
+
end
|
60
|
+
|
61
|
+
def inspect
|
62
|
+
"#<Process::Status: pid #{@pid} exit #{@status}>"
|
63
|
+
end
|
64
|
+
end
|
11
65
|
end
|
12
66
|
|
13
67
|
ARGV = `process.argv.slice(2)`
|
68
|
+
|
69
|
+
ARGV.shift if ARGV.first == '--'
|
data/stdlib/nodejs.rb
CHANGED
data/stdlib/opal/platform.rb
CHANGED
data/stdlib/opal-platform.rb
CHANGED
@@ -5,7 +5,8 @@ node = `typeof(process) !== "undefined" && process.versions && proces
|
|
5
5
|
nashorn = `typeof(Java) !== "undefined" && Java.type`
|
6
6
|
headless_chrome = `typeof(navigator) !== "undefined" && /\bHeadlessChrome\//.test(navigator.userAgent)`
|
7
7
|
gjs = `typeof(window) !== "undefined" && typeof(GjsFileImporter) !== 'undefined'`
|
8
|
-
|
8
|
+
quickjs = `typeof(window) === "undefined" && typeof(__loadScript) !== 'undefined'`
|
9
|
+
opal_miniracer = `typeof(opalminiracer) !== 'undefined'`
|
9
10
|
|
10
11
|
OPAL_PLATFORM = if nashorn
|
11
12
|
'nashorn'
|
@@ -15,7 +16,9 @@ OPAL_PLATFORM = if nashorn
|
|
15
16
|
'headless-chrome'
|
16
17
|
elsif gjs
|
17
18
|
'gjs'
|
18
|
-
elsif
|
19
|
+
elsif quickjs
|
20
|
+
'quickjs'
|
21
|
+
elsif opal_miniracer
|
19
22
|
'opal-miniracer'
|
20
23
|
else # possibly browser, which is the primary target
|
21
24
|
end
|
data/stdlib/pathname.rb
CHANGED
@@ -0,0 +1,22 @@
|
|
1
|
+
`/* global std */`
|
2
|
+
|
3
|
+
%x{
|
4
|
+
Opal.gvars.stdout.write_proc = function(s) {
|
5
|
+
std.out.printf("%s", s);
|
6
|
+
std.out.flush();
|
7
|
+
}
|
8
|
+
|
9
|
+
Opal.gvars.stderr.write_proc = function(s) {
|
10
|
+
std.err.printf("%s", s);
|
11
|
+
std.err.flush();
|
12
|
+
}
|
13
|
+
|
14
|
+
Opal.gvars.stdin.read_proc = function(s) {
|
15
|
+
if (std.in.eof()) {
|
16
|
+
return nil;
|
17
|
+
}
|
18
|
+
else {
|
19
|
+
return std.in.readAsString(s);
|
20
|
+
}
|
21
|
+
}
|
22
|
+
}
|
data/stdlib/quickjs.rb
ADDED
data/stdlib/securerandom.rb
CHANGED
data/tasks/performance.rake
CHANGED
@@ -55,6 +55,7 @@ ASCIIDOCTOR_PREPARE = [
|
|
55
55
|
ASCIIDOCTOR_BUILD_OPAL = "bin/opal --no-cache -c " \
|
56
56
|
"-Itmp/performance/asciidoctor/lib " \
|
57
57
|
"-Itmp/performance/asciidoctor.js/packages/core/lib " \
|
58
|
+
"-sconcurrent/map -sslim/include " \
|
58
59
|
"tmp/performance/asciidoctor_test.rb > tmp/performance/asciidoctor_test.js"
|
59
60
|
ASCIIDOCTOR_RUN_RUBY = "bundle exec ruby -Itmp/performance/asciidoctor/lib tmp/performance/asciidoctor_test.rb"
|
60
61
|
ASCIIDOCTOR_RUN_OPAL = "node tmp/performance/asciidoctor_test.js"
|
@@ -70,7 +71,7 @@ performance_stat = ->(name) {
|
|
70
71
|
sh("#{NODE_OPTSTATUS} > tmp/performance/optstatus_#{name}")
|
71
72
|
|
72
73
|
puts "\n* Building AsciiDoctor with #{name}..."
|
73
|
-
stat[:compiler_time] = mean_time.(tries:
|
74
|
+
stat[:compiler_time] = mean_time.(tries: 7) { sh(ASCIIDOCTOR_BUILD_OPAL) }
|
74
75
|
|
75
76
|
puts "\n* Running AsciiDoctor with #{name}..."
|
76
77
|
stat[:run_time] = mean_time.(tries: 31) { sh("#{ASCIIDOCTOR_RUN_OPAL} > tmp/performance/opal_result_#{name}.html") }
|
data/tasks/testing.rake
CHANGED
@@ -284,7 +284,7 @@ Use PATTERN environment variable to manually set the glob for specs:
|
|
284
284
|
bundle exec rake mspec_nodejs PATTERN=spec/ruby/core/numeric/**_spec.rb
|
285
285
|
DESC
|
286
286
|
|
287
|
-
platforms = %w[nodejs server chrome gjs]
|
287
|
+
platforms = %w[nodejs server chrome gjs quickjs]
|
288
288
|
mspec_suites = %w[ruby opal]
|
289
289
|
minitest_suites = %w[cruby]
|
290
290
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opal
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.0.
|
4
|
+
version: 1.3.0.rc1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Elia Schito
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: exe
|
12
12
|
cert_chain: []
|
13
|
-
date: 2021-
|
13
|
+
date: 2021-10-20 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: ast
|
@@ -406,6 +406,12 @@ files:
|
|
406
406
|
- docs/unsupported_features.md
|
407
407
|
- docs/upgrading.md
|
408
408
|
- docs/using_sprockets.md
|
409
|
+
- examples/rack-esm/.gitignore
|
410
|
+
- examples/rack-esm/Gemfile
|
411
|
+
- examples/rack-esm/app/application.rb
|
412
|
+
- examples/rack-esm/app/user.rb
|
413
|
+
- examples/rack-esm/config.ru
|
414
|
+
- examples/rack-esm/index.html.erb
|
409
415
|
- examples/rack/.gitignore
|
410
416
|
- examples/rack/Gemfile
|
411
417
|
- examples/rack/Gemfile.lock
|
@@ -432,7 +438,6 @@ files:
|
|
432
438
|
- lib/opal/cli_runners.rb
|
433
439
|
- lib/opal/cli_runners/applescript.rb
|
434
440
|
- lib/opal/cli_runners/chrome.rb
|
435
|
-
- lib/opal/cli_runners/chrome_cdp_interface.js
|
436
441
|
- lib/opal/cli_runners/chrome_cdp_interface.rb
|
437
442
|
- lib/opal/cli_runners/compiler.rb
|
438
443
|
- lib/opal/cli_runners/gjs.rb
|
@@ -477,6 +482,7 @@ files:
|
|
477
482
|
- lib/opal/cli_runners/node_modules/ws/package.json
|
478
483
|
- lib/opal/cli_runners/nodejs.rb
|
479
484
|
- lib/opal/cli_runners/package.json
|
485
|
+
- lib/opal/cli_runners/quickjs.rb
|
480
486
|
- lib/opal/cli_runners/server.rb
|
481
487
|
- lib/opal/cli_runners/source-map-support-browser.js
|
482
488
|
- lib/opal/cli_runners/source-map-support-node.js
|
@@ -592,6 +598,7 @@ files:
|
|
592
598
|
- opal/corelib/class.rb
|
593
599
|
- opal/corelib/comparable.rb
|
594
600
|
- opal/corelib/complex.rb
|
601
|
+
- opal/corelib/complex/base.rb
|
595
602
|
- opal/corelib/constants.rb
|
596
603
|
- opal/corelib/dir.rb
|
597
604
|
- opal/corelib/enumerable.rb
|
@@ -616,8 +623,10 @@ files:
|
|
616
623
|
- opal/corelib/object_space.rb
|
617
624
|
- opal/corelib/pack_unpack/format_string_parser.rb
|
618
625
|
- opal/corelib/pattern_matching.rb
|
626
|
+
- opal/corelib/pattern_matching/base.rb
|
619
627
|
- opal/corelib/proc.rb
|
620
628
|
- opal/corelib/process.rb
|
629
|
+
- opal/corelib/process/base.rb
|
621
630
|
- opal/corelib/random.rb
|
622
631
|
- opal/corelib/random/formatter.rb
|
623
632
|
- opal/corelib/random/math_random.js.rb
|
@@ -625,6 +634,7 @@ files:
|
|
625
634
|
- opal/corelib/random/seedrandom.js.rb
|
626
635
|
- opal/corelib/range.rb
|
627
636
|
- opal/corelib/rational.rb
|
637
|
+
- opal/corelib/rational/base.rb
|
628
638
|
- opal/corelib/regexp.rb
|
629
639
|
- opal/corelib/runtime.js
|
630
640
|
- opal/corelib/string.rb
|
@@ -947,6 +957,7 @@ files:
|
|
947
957
|
- stdlib/nashorn/io.rb
|
948
958
|
- stdlib/native.rb
|
949
959
|
- stdlib/nodejs.rb
|
960
|
+
- stdlib/nodejs/argf.rb
|
950
961
|
- stdlib/nodejs/dir.rb
|
951
962
|
- stdlib/nodejs/env.rb
|
952
963
|
- stdlib/nodejs/file.rb
|
@@ -1038,6 +1049,9 @@ files:
|
|
1038
1049
|
- stdlib/promise.rb
|
1039
1050
|
- stdlib/promise/v1.rb
|
1040
1051
|
- stdlib/promise/v2.rb
|
1052
|
+
- stdlib/quickjs.rb
|
1053
|
+
- stdlib/quickjs/io.rb
|
1054
|
+
- stdlib/quickjs/kernel.rb
|
1041
1055
|
- stdlib/racc/parser.rb
|
1042
1056
|
- stdlib/rbconfig.rb
|
1043
1057
|
- stdlib/rbconfig/sizeof.rb
|
@@ -1107,10 +1121,10 @@ licenses:
|
|
1107
1121
|
metadata:
|
1108
1122
|
homepage_uri: https://opalrb.com/
|
1109
1123
|
bug_tracker_uri: https://github.com/opal/opal/issues
|
1110
|
-
changelog_uri: https://github.com/opal/opal/blob/v1.3.0.
|
1111
|
-
readme_uri: https://github.com/opal/opal/blob/v1.3.0.
|
1112
|
-
api_documentation_uri: http://opalrb.com/docs/api/v1.3.0.
|
1113
|
-
guides_uri: http://opalrb.com/docs/guides/v1.3.0.
|
1124
|
+
changelog_uri: https://github.com/opal/opal/blob/v1.3.0.rc1/CHANGELOG.md
|
1125
|
+
readme_uri: https://github.com/opal/opal/blob/v1.3.0.rc1/README.md
|
1126
|
+
api_documentation_uri: http://opalrb.com/docs/api/v1.3.0.rc1/index.html
|
1127
|
+
guides_uri: http://opalrb.com/docs/guides/v1.3.0.rc1/index.html
|
1114
1128
|
chat_uri: https://gitter.im/opal/opal
|
1115
1129
|
source_code_uri: https://github.com/opal/opal
|
1116
1130
|
post_install_message:
|
@@ -1304,6 +1318,12 @@ test_files:
|
|
1304
1318
|
- docs/unsupported_features.md
|
1305
1319
|
- docs/upgrading.md
|
1306
1320
|
- docs/using_sprockets.md
|
1321
|
+
- examples/rack-esm/.gitignore
|
1322
|
+
- examples/rack-esm/Gemfile
|
1323
|
+
- examples/rack-esm/app/application.rb
|
1324
|
+
- examples/rack-esm/app/user.rb
|
1325
|
+
- examples/rack-esm/config.ru
|
1326
|
+
- examples/rack-esm/index.html.erb
|
1307
1327
|
- examples/rack/.gitignore
|
1308
1328
|
- examples/rack/Gemfile
|
1309
1329
|
- examples/rack/Gemfile.lock
|
@@ -1330,7 +1350,6 @@ test_files:
|
|
1330
1350
|
- lib/opal/cli_runners.rb
|
1331
1351
|
- lib/opal/cli_runners/applescript.rb
|
1332
1352
|
- lib/opal/cli_runners/chrome.rb
|
1333
|
-
- lib/opal/cli_runners/chrome_cdp_interface.js
|
1334
1353
|
- lib/opal/cli_runners/chrome_cdp_interface.rb
|
1335
1354
|
- lib/opal/cli_runners/compiler.rb
|
1336
1355
|
- lib/opal/cli_runners/gjs.rb
|
@@ -1375,6 +1394,7 @@ test_files:
|
|
1375
1394
|
- lib/opal/cli_runners/node_modules/ws/package.json
|
1376
1395
|
- lib/opal/cli_runners/nodejs.rb
|
1377
1396
|
- lib/opal/cli_runners/package.json
|
1397
|
+
- lib/opal/cli_runners/quickjs.rb
|
1378
1398
|
- lib/opal/cli_runners/server.rb
|
1379
1399
|
- lib/opal/cli_runners/source-map-support-browser.js
|
1380
1400
|
- lib/opal/cli_runners/source-map-support-node.js
|
@@ -1490,6 +1510,7 @@ test_files:
|
|
1490
1510
|
- opal/corelib/class.rb
|
1491
1511
|
- opal/corelib/comparable.rb
|
1492
1512
|
- opal/corelib/complex.rb
|
1513
|
+
- opal/corelib/complex/base.rb
|
1493
1514
|
- opal/corelib/constants.rb
|
1494
1515
|
- opal/corelib/dir.rb
|
1495
1516
|
- opal/corelib/enumerable.rb
|
@@ -1514,8 +1535,10 @@ test_files:
|
|
1514
1535
|
- opal/corelib/object_space.rb
|
1515
1536
|
- opal/corelib/pack_unpack/format_string_parser.rb
|
1516
1537
|
- opal/corelib/pattern_matching.rb
|
1538
|
+
- opal/corelib/pattern_matching/base.rb
|
1517
1539
|
- opal/corelib/proc.rb
|
1518
1540
|
- opal/corelib/process.rb
|
1541
|
+
- opal/corelib/process/base.rb
|
1519
1542
|
- opal/corelib/random.rb
|
1520
1543
|
- opal/corelib/random/formatter.rb
|
1521
1544
|
- opal/corelib/random/math_random.js.rb
|
@@ -1523,6 +1546,7 @@ test_files:
|
|
1523
1546
|
- opal/corelib/random/seedrandom.js.rb
|
1524
1547
|
- opal/corelib/range.rb
|
1525
1548
|
- opal/corelib/rational.rb
|
1549
|
+
- opal/corelib/rational/base.rb
|
1526
1550
|
- opal/corelib/regexp.rb
|
1527
1551
|
- opal/corelib/runtime.js
|
1528
1552
|
- opal/corelib/string.rb
|
@@ -1576,6 +1600,7 @@ test_files:
|
|
1576
1600
|
- stdlib/nashorn/io.rb
|
1577
1601
|
- stdlib/native.rb
|
1578
1602
|
- stdlib/nodejs.rb
|
1603
|
+
- stdlib/nodejs/argf.rb
|
1579
1604
|
- stdlib/nodejs/dir.rb
|
1580
1605
|
- stdlib/nodejs/env.rb
|
1581
1606
|
- stdlib/nodejs/file.rb
|
@@ -1667,6 +1692,9 @@ test_files:
|
|
1667
1692
|
- stdlib/promise.rb
|
1668
1693
|
- stdlib/promise/v1.rb
|
1669
1694
|
- stdlib/promise/v2.rb
|
1695
|
+
- stdlib/quickjs.rb
|
1696
|
+
- stdlib/quickjs/io.rb
|
1697
|
+
- stdlib/quickjs/kernel.rb
|
1670
1698
|
- stdlib/racc/parser.rb
|
1671
1699
|
- stdlib/rbconfig.rb
|
1672
1700
|
- stdlib/rbconfig/sizeof.rb
|