rbs 4.0.0.dev.4 → 4.1.0.pre.2
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/.clang-format +1 -0
- data/.github/dependabot.yml +16 -14
- data/.github/workflows/bundle-update.yml +63 -0
- data/.github/workflows/c-check.yml +21 -11
- data/.github/workflows/comments.yml +5 -3
- data/.github/workflows/dependabot.yml +2 -2
- data/.github/workflows/jruby.yml +67 -0
- data/.github/workflows/milestone.yml +83 -0
- data/.github/workflows/ruby.yml +63 -24
- data/.github/workflows/rust.yml +184 -0
- data/.github/workflows/truffleruby.yml +54 -0
- data/.github/workflows/typecheck.yml +5 -2
- data/.github/workflows/wasm.yml +53 -0
- data/.github/workflows/windows.yml +8 -2
- data/.gitignore +11 -0
- data/.rubocop.yml +1 -1
- data/CHANGELOG.md +357 -0
- data/README.md +4 -4
- data/Rakefile +365 -33
- data/Steepfile +8 -0
- data/config.yml +450 -24
- data/core/array.rbs +443 -363
- data/core/basic_object.rbs +9 -8
- data/core/binding.rbs +0 -2
- data/core/builtin.rbs +9 -8
- data/core/class.rbs +11 -8
- data/core/comparable.rbs +55 -34
- data/core/complex.rbs +104 -78
- data/core/dir.rbs +61 -49
- data/core/encoding.rbs +12 -15
- data/core/enumerable.rbs +288 -196
- data/core/enumerator/arithmetic_sequence.rbs +70 -0
- data/core/enumerator/product.rbs +5 -5
- data/core/enumerator.rbs +91 -28
- data/core/errno.rbs +11 -2
- data/core/errors.rbs +58 -29
- data/core/exception.rbs +13 -13
- data/core/fiber.rbs +74 -54
- data/core/file.rbs +260 -1151
- data/core/file_constants.rbs +463 -0
- data/core/file_stat.rbs +534 -0
- data/core/file_test.rbs +3 -3
- data/core/float.rbs +257 -92
- data/core/gc.rbs +425 -281
- data/core/hash.rbs +1151 -829
- data/core/integer.rbs +156 -195
- data/core/io/buffer.rbs +53 -42
- data/core/io/wait.rbs +13 -35
- data/core/io.rbs +216 -150
- data/core/kernel.rbs +239 -163
- data/core/marshal.rbs +4 -4
- data/core/match_data.rbs +15 -13
- data/core/math.rbs +107 -66
- data/core/method.rbs +69 -33
- data/core/module.rbs +302 -150
- data/core/nil_class.rbs +7 -6
- data/core/numeric.rbs +77 -63
- data/core/object.rbs +9 -11
- data/core/object_space/weak_key_map.rbs +7 -7
- data/core/object_space.rbs +30 -23
- data/core/pathname.rbs +1322 -0
- data/core/proc.rbs +95 -58
- data/core/process.rbs +222 -202
- data/core/ractor.rbs +371 -515
- data/core/random.rbs +21 -3
- data/core/range.rbs +181 -79
- data/core/rational.rbs +60 -89
- data/core/rbs/ops.rbs +154 -0
- data/core/rbs/unnamed/argf.rbs +63 -56
- data/core/rbs/unnamed/env_class.rbs +19 -14
- data/core/rbs/unnamed/main_class.rbs +123 -0
- data/core/rbs/unnamed/random.rbs +11 -118
- data/core/regexp.rbs +258 -214
- data/core/ruby.rbs +53 -0
- data/core/ruby_vm.rbs +78 -34
- data/core/rubygems/config_file.rbs +5 -5
- data/core/rubygems/errors.rbs +4 -71
- data/core/rubygems/requirement.rbs +5 -5
- data/core/rubygems/rubygems.rbs +16 -82
- data/core/rubygems/version.rbs +2 -3
- data/core/set.rbs +493 -363
- data/core/signal.rbs +26 -16
- data/core/string.rbs +3234 -1285
- data/core/struct.rbs +43 -42
- data/core/symbol.rbs +41 -34
- data/core/thread.rbs +141 -73
- data/core/time.rbs +81 -50
- data/core/trace_point.rbs +41 -35
- data/core/true_class.rbs +2 -2
- data/core/unbound_method.rbs +24 -16
- data/core/warning.rbs +7 -7
- data/docs/CONTRIBUTING.md +2 -1
- data/docs/aliases.md +79 -0
- data/docs/collection.md +3 -3
- data/docs/config.md +171 -0
- data/docs/encoding.md +56 -0
- data/docs/gem.md +0 -1
- data/docs/inline.md +634 -0
- data/docs/rbs_by_example.md +20 -20
- data/docs/rust.md +96 -0
- data/docs/sigs.md +3 -3
- data/docs/syntax.md +48 -18
- data/docs/type_fingerprint.md +21 -0
- data/docs/wasm_serialization.md +80 -0
- data/exe/rbs +1 -1
- data/ext/rbs_extension/ast_translation.c +1441 -671
- data/ext/rbs_extension/ast_translation.h +7 -0
- data/ext/rbs_extension/class_constants.c +18 -2
- data/ext/rbs_extension/class_constants.h +9 -0
- data/ext/rbs_extension/extconf.rb +6 -1
- data/ext/rbs_extension/legacy_location.c +33 -56
- data/ext/rbs_extension/legacy_location.h +37 -0
- data/ext/rbs_extension/main.c +183 -39
- data/include/rbs/ast.h +597 -297
- data/include/rbs/defines.h +40 -0
- data/include/rbs/lexer.h +31 -11
- data/include/rbs/location.h +25 -44
- data/include/rbs/parser.h +6 -6
- data/include/rbs/serialize.h +39 -0
- data/include/rbs/string.h +0 -2
- data/include/rbs/util/rbs_allocator.h +34 -13
- data/include/rbs/util/rbs_assert.h +12 -1
- data/include/rbs/util/rbs_constant_pool.h +0 -3
- data/include/rbs/util/rbs_encoding.h +2 -0
- data/include/rbs/util/rbs_unescape.h +2 -1
- data/include/rbs.h +8 -0
- data/lib/rbs/annotate/rdoc_annotator.rb +27 -31
- data/lib/rbs/ast/annotation.rb +1 -1
- data/lib/rbs/ast/comment.rb +1 -1
- data/lib/rbs/ast/declarations.rb +10 -10
- data/lib/rbs/ast/members.rb +14 -14
- data/lib/rbs/ast/ruby/annotations.rb +335 -3
- data/lib/rbs/ast/ruby/comment_block.rb +30 -4
- data/lib/rbs/ast/ruby/declarations.rb +209 -4
- data/lib/rbs/ast/ruby/helpers/constant_helper.rb +4 -0
- data/lib/rbs/ast/ruby/helpers/location_helper.rb +1 -1
- data/lib/rbs/ast/ruby/members.rb +571 -22
- data/lib/rbs/ast/type_param.rb +24 -4
- data/lib/rbs/buffer.rb +66 -24
- data/lib/rbs/cli/diff.rb +16 -15
- data/lib/rbs/cli/validate.rb +38 -106
- data/lib/rbs/cli.rb +55 -24
- data/lib/rbs/collection/config/lockfile_generator.rb +28 -3
- data/lib/rbs/collection/sources/git.rb +7 -0
- data/lib/rbs/definition.rb +1 -1
- data/lib/rbs/definition_builder/ancestor_builder.rb +62 -9
- data/lib/rbs/definition_builder/method_builder.rb +32 -6
- data/lib/rbs/definition_builder.rb +147 -25
- data/lib/rbs/diff.rb +7 -1
- data/lib/rbs/environment.rb +235 -75
- data/lib/rbs/environment_loader.rb +0 -6
- data/lib/rbs/errors.rb +27 -18
- data/lib/rbs/inline_parser.rb +377 -15
- data/lib/rbs/location_aux.rb +1 -1
- data/lib/rbs/locator.rb +5 -1
- data/lib/rbs/method_type.rb +5 -3
- data/lib/rbs/namespace.rb +47 -11
- data/lib/rbs/parser_aux.rb +20 -7
- data/lib/rbs/prototype/helpers.rb +57 -0
- data/lib/rbs/prototype/rb.rb +3 -28
- data/lib/rbs/prototype/rbi.rb +3 -20
- data/lib/rbs/prototype/runtime.rb +10 -0
- data/lib/rbs/resolver/constant_resolver.rb +2 -2
- data/lib/rbs/resolver/type_name_resolver.rb +120 -44
- data/lib/rbs/rewriter.rb +70 -0
- data/lib/rbs/subtractor.rb +3 -1
- data/lib/rbs/test/type_check.rb +25 -3
- data/lib/rbs/type_name.rb +34 -14
- data/lib/rbs/types.rb +88 -78
- data/lib/rbs/unit_test/type_assertions.rb +44 -8
- data/lib/rbs/validator.rb +2 -2
- data/lib/rbs/version.rb +1 -1
- data/lib/rbs/wasm/deserializer.rb +213 -0
- data/lib/rbs/wasm/location.rb +61 -0
- data/lib/rbs/wasm/parser.rb +137 -0
- data/lib/rbs/wasm/runtime.rb +217 -0
- data/lib/rbs/wasm/serialization_schema.rb +110 -0
- data/lib/rbs.rb +13 -2
- data/lib/rdoc/discover.rb +1 -1
- data/lib/rdoc_plugin/parser.rb +1 -1
- data/rbs.gemspec +24 -6
- data/schema/typeParam.json +17 -1
- data/sig/annotate/rdoc_annotater.rbs +12 -9
- data/sig/ast/ruby/annotations.rbs +364 -4
- data/sig/ast/ruby/comment_block.rbs +8 -0
- data/sig/ast/ruby/declarations.rbs +102 -4
- data/sig/ast/ruby/members.rbs +128 -2
- data/sig/buffer.rbs +19 -1
- data/sig/cli/diff.rbs +5 -11
- data/sig/cli/validate.rbs +12 -8
- data/sig/cli.rbs +18 -18
- data/sig/collection/config/lockfile_generator.rbs +2 -0
- data/sig/definition.rbs +6 -1
- data/sig/definition_builder.rbs +2 -0
- data/sig/environment.rbs +70 -12
- data/sig/errors.rbs +13 -14
- data/sig/inline_parser.rbs +41 -2
- data/sig/locator.rbs +0 -2
- data/sig/manifest.yaml +0 -2
- data/sig/method_builder.rbs +3 -1
- data/sig/namespace.rbs +20 -0
- data/sig/parser.rbs +41 -13
- data/sig/prototype/helpers.rbs +2 -0
- data/sig/resolver/type_name_resolver.rbs +36 -10
- data/sig/rewriter.rbs +45 -0
- data/sig/source.rbs +3 -3
- data/sig/type_param.rbs +13 -8
- data/sig/typename.rbs +15 -0
- data/sig/types.rbs +6 -7
- data/sig/unit_test/spy.rbs +0 -8
- data/sig/unit_test/type_assertions.rbs +15 -0
- data/sig/wasm/deserializer.rbs +66 -0
- data/sig/wasm/serialization_schema.rbs +13 -0
- data/src/ast.c +443 -162
- data/src/lexer.c +1415 -1313
- data/src/lexer.re +4 -0
- data/src/lexstate.c +63 -37
- data/src/location.c +7 -47
- data/src/parser.c +1032 -521
- data/src/serialize.c +958 -0
- data/src/string.c +0 -48
- data/src/util/rbs_allocator.c +89 -74
- data/src/util/rbs_assert.c +1 -1
- data/src/util/rbs_buffer.c +2 -2
- data/src/util/rbs_constant_pool.c +10 -14
- data/src/util/rbs_encoding.c +4 -8
- data/src/util/rbs_unescape.c +56 -20
- data/stdlib/abbrev/0/array.rbs +1 -1
- data/stdlib/bigdecimal/0/big_decimal.rbs +116 -98
- data/stdlib/bigdecimal-math/0/big_math.rbs +169 -8
- data/stdlib/cgi/0/core.rbs +9 -393
- data/stdlib/cgi/0/manifest.yaml +1 -0
- data/stdlib/cgi-escape/0/escape.rbs +171 -0
- data/stdlib/coverage/0/coverage.rbs +7 -4
- data/stdlib/csv/0/csv.rbs +5 -5
- data/stdlib/date/0/date.rbs +92 -79
- data/stdlib/date/0/date_time.rbs +25 -24
- data/stdlib/delegate/0/delegator.rbs +10 -7
- data/stdlib/did_you_mean/0/did_you_mean.rbs +17 -16
- data/stdlib/digest/0/digest.rbs +111 -1
- data/stdlib/erb/0/erb.rbs +748 -347
- data/stdlib/etc/0/etc.rbs +73 -54
- data/stdlib/fileutils/0/fileutils.rbs +179 -160
- data/stdlib/forwardable/0/forwardable.rbs +13 -10
- data/stdlib/io-console/0/io-console.rbs +2 -2
- data/stdlib/json/0/json.rbs +223 -142
- data/stdlib/monitor/0/monitor.rbs +3 -3
- data/stdlib/net-http/0/net-http.rbs +162 -134
- data/stdlib/objspace/0/objspace.rbs +17 -34
- data/stdlib/open-uri/0/open-uri.rbs +48 -8
- data/stdlib/open3/0/open3.rbs +469 -10
- data/stdlib/openssl/0/openssl.rbs +482 -364
- data/stdlib/optparse/0/optparse.rbs +26 -17
- data/stdlib/pathname/0/pathname.rbs +11 -1381
- data/stdlib/pp/0/pp.rbs +9 -8
- data/stdlib/prettyprint/0/prettyprint.rbs +7 -7
- data/stdlib/pstore/0/pstore.rbs +35 -30
- data/stdlib/psych/0/psych.rbs +65 -12
- data/stdlib/psych/0/store.rbs +2 -4
- data/stdlib/pty/0/pty.rbs +9 -6
- data/stdlib/random-formatter/0/random-formatter.rbs +277 -0
- data/stdlib/rdoc/0/code_object.rbs +2 -1
- data/stdlib/rdoc/0/parser.rbs +1 -1
- data/stdlib/rdoc/0/rdoc.rbs +1 -1
- data/stdlib/rdoc/0/store.rbs +1 -1
- data/stdlib/resolv/0/resolv.rbs +26 -69
- data/stdlib/ripper/0/ripper.rbs +22 -19
- data/stdlib/securerandom/0/manifest.yaml +2 -0
- data/stdlib/securerandom/0/securerandom.rbs +7 -20
- data/stdlib/shellwords/0/shellwords.rbs +3 -3
- data/stdlib/singleton/0/singleton.rbs +3 -0
- data/stdlib/socket/0/addrinfo.rbs +7 -7
- data/stdlib/socket/0/basic_socket.rbs +3 -3
- data/stdlib/socket/0/ip_socket.rbs +10 -8
- data/stdlib/socket/0/socket.rbs +23 -10
- data/stdlib/socket/0/tcp_server.rbs +1 -1
- data/stdlib/socket/0/tcp_socket.rbs +11 -3
- data/stdlib/socket/0/udp_socket.rbs +1 -1
- data/stdlib/socket/0/unix_server.rbs +1 -1
- data/stdlib/stringio/0/stringio.rbs +1209 -95
- data/stdlib/strscan/0/string_scanner.rbs +101 -80
- data/stdlib/tempfile/0/tempfile.rbs +25 -21
- data/stdlib/time/0/time.rbs +8 -6
- data/stdlib/timeout/0/timeout.rbs +63 -7
- data/stdlib/tsort/0/cyclic.rbs +4 -1
- data/stdlib/tsort/0/interfaces.rbs +8 -8
- data/stdlib/tsort/0/tsort.rbs +16 -15
- data/stdlib/uri/0/common.rbs +42 -20
- data/stdlib/uri/0/file.rbs +3 -3
- data/stdlib/uri/0/generic.rbs +26 -18
- data/stdlib/uri/0/http.rbs +2 -2
- data/stdlib/uri/0/ldap.rbs +2 -2
- data/stdlib/uri/0/mailto.rbs +3 -3
- data/stdlib/uri/0/rfc2396_parser.rbs +12 -12
- data/stdlib/zlib/0/deflate.rbs +4 -3
- data/stdlib/zlib/0/gzip_reader.rbs +8 -8
- data/stdlib/zlib/0/gzip_writer.rbs +14 -12
- data/stdlib/zlib/0/inflate.rbs +1 -1
- data/stdlib/zlib/0/need_dict.rbs +1 -1
- data/stdlib/zlib/0/zstream.rbs +1 -0
- data/wasm/README.md +59 -0
- data/wasm/rbs_wasm.c +411 -0
- metadata +56 -8
- data/.vscode/extensions.json +0 -5
- data/.vscode/settings.json +0 -19
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
name: Rust
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- master
|
|
7
|
+
pull_request:
|
|
8
|
+
paths:
|
|
9
|
+
- ".github/workflows/rust.yml"
|
|
10
|
+
- "rust/**"
|
|
11
|
+
|
|
12
|
+
env:
|
|
13
|
+
RUSTFLAGS: "-D warnings"
|
|
14
|
+
|
|
15
|
+
permissions:
|
|
16
|
+
contents: read
|
|
17
|
+
|
|
18
|
+
jobs:
|
|
19
|
+
test:
|
|
20
|
+
name: cargo:test
|
|
21
|
+
runs-on: ${{ matrix.os }}
|
|
22
|
+
strategy:
|
|
23
|
+
fail-fast: false
|
|
24
|
+
matrix:
|
|
25
|
+
os: [ubuntu-latest, macos-latest, windows-latest]
|
|
26
|
+
steps:
|
|
27
|
+
- uses: actions/checkout@v6
|
|
28
|
+
- run: git fetch --depth=1 origin +refs/tags/*:refs/tags/*
|
|
29
|
+
- name: Set up Ruby
|
|
30
|
+
uses: ruby/setup-ruby@v1
|
|
31
|
+
with:
|
|
32
|
+
ruby-version: ruby
|
|
33
|
+
bundler: none
|
|
34
|
+
- name: Update rubygems & bundler
|
|
35
|
+
run: gem update --system
|
|
36
|
+
- name: Install gems
|
|
37
|
+
run: |
|
|
38
|
+
bundle config set --local without libs:profilers
|
|
39
|
+
bundle install --jobs 4 --retry 3
|
|
40
|
+
- name: Set up vendored RBS source
|
|
41
|
+
run: bundle exec rake rust:rbs:sync
|
|
42
|
+
- name: Install Rust tools
|
|
43
|
+
run: |
|
|
44
|
+
rustup update --no-self-update stable
|
|
45
|
+
rustup default stable
|
|
46
|
+
- uses: actions/cache@v5
|
|
47
|
+
with:
|
|
48
|
+
path: |
|
|
49
|
+
~/.cargo/registry
|
|
50
|
+
~/.cargo/git
|
|
51
|
+
rust/target
|
|
52
|
+
key: ${{ runner.os }}-cargo-${{ hashFiles('rust/Cargo.lock') }}
|
|
53
|
+
restore-keys: |
|
|
54
|
+
${{ runner.os }}-cargo-
|
|
55
|
+
- name: Run tests
|
|
56
|
+
run: |
|
|
57
|
+
cd rust
|
|
58
|
+
cargo test --verbose
|
|
59
|
+
|
|
60
|
+
publish-dry-run-ruby-rbs-sys:
|
|
61
|
+
name: rust:publish:ruby-rbs-sys
|
|
62
|
+
runs-on: ubuntu-latest
|
|
63
|
+
continue-on-error: true
|
|
64
|
+
steps:
|
|
65
|
+
- uses: actions/checkout@v6
|
|
66
|
+
- run: git fetch --depth=1 origin +refs/tags/*:refs/tags/*
|
|
67
|
+
- name: Set up git identity
|
|
68
|
+
run: |
|
|
69
|
+
git config user.name "GitHub Actions"
|
|
70
|
+
git config user.email "actions@github.com"
|
|
71
|
+
- name: Set up Ruby
|
|
72
|
+
uses: ruby/setup-ruby@v1
|
|
73
|
+
with:
|
|
74
|
+
ruby-version: ruby
|
|
75
|
+
bundler: none
|
|
76
|
+
- name: Update rubygems & bundler
|
|
77
|
+
run: gem update --system
|
|
78
|
+
- name: Install gems
|
|
79
|
+
run: |
|
|
80
|
+
bundle config set --local without libs:profilers
|
|
81
|
+
bundle install --jobs 4 --retry 3
|
|
82
|
+
- name: Set up vendored RBS source
|
|
83
|
+
run: bundle exec rake rust:rbs:sync
|
|
84
|
+
- name: Install Rust tools
|
|
85
|
+
run: |
|
|
86
|
+
rustup update --no-self-update stable
|
|
87
|
+
rustup default stable
|
|
88
|
+
- uses: actions/cache@v5
|
|
89
|
+
with:
|
|
90
|
+
path: |
|
|
91
|
+
~/.cargo/registry
|
|
92
|
+
~/.cargo/git
|
|
93
|
+
rust/target
|
|
94
|
+
key: ${{ runner.os }}-cargo-${{ hashFiles('rust/Cargo.lock') }}
|
|
95
|
+
restore-keys: |
|
|
96
|
+
${{ runner.os }}-cargo-
|
|
97
|
+
- name: Test publish ruby-rbs-sys
|
|
98
|
+
run: bundle exec rake rust:publish:ruby-rbs-sys
|
|
99
|
+
env:
|
|
100
|
+
RBS_RUST_PUBLISH_DRY_RUN: "1"
|
|
101
|
+
|
|
102
|
+
publish-dry-run-ruby-rbs:
|
|
103
|
+
name: rust:publish:ruby-rbs
|
|
104
|
+
runs-on: ubuntu-latest
|
|
105
|
+
continue-on-error: true
|
|
106
|
+
steps:
|
|
107
|
+
- uses: actions/checkout@v6
|
|
108
|
+
- run: git fetch --depth=1 origin +refs/tags/*:refs/tags/*
|
|
109
|
+
- name: Set up git identity
|
|
110
|
+
run: |
|
|
111
|
+
git config user.name "GitHub Actions"
|
|
112
|
+
git config user.email "actions@github.com"
|
|
113
|
+
- name: Set up Ruby
|
|
114
|
+
uses: ruby/setup-ruby@v1
|
|
115
|
+
with:
|
|
116
|
+
ruby-version: ruby
|
|
117
|
+
bundler: none
|
|
118
|
+
- name: Update rubygems & bundler
|
|
119
|
+
run: gem update --system
|
|
120
|
+
- name: Install gems
|
|
121
|
+
run: |
|
|
122
|
+
bundle config set --local without libs:profilers
|
|
123
|
+
bundle install --jobs 4 --retry 3
|
|
124
|
+
- name: Set up vendored RBS source
|
|
125
|
+
run: bundle exec rake rust:rbs:sync
|
|
126
|
+
- name: Install Rust tools
|
|
127
|
+
run: |
|
|
128
|
+
rustup update --no-self-update stable
|
|
129
|
+
rustup default stable
|
|
130
|
+
- uses: actions/cache@v5
|
|
131
|
+
with:
|
|
132
|
+
path: |
|
|
133
|
+
~/.cargo/registry
|
|
134
|
+
~/.cargo/git
|
|
135
|
+
rust/target
|
|
136
|
+
key: ${{ runner.os }}-cargo-${{ hashFiles('rust/Cargo.lock') }}
|
|
137
|
+
restore-keys: |
|
|
138
|
+
${{ runner.os }}-cargo-
|
|
139
|
+
- name: Test publish ruby-rbs
|
|
140
|
+
run: bundle exec rake rust:publish:ruby-rbs
|
|
141
|
+
env:
|
|
142
|
+
RBS_RUST_PUBLISH_DRY_RUN: "1"
|
|
143
|
+
|
|
144
|
+
lint:
|
|
145
|
+
name: cargo:lint
|
|
146
|
+
runs-on: ubuntu-latest
|
|
147
|
+
steps:
|
|
148
|
+
- uses: actions/checkout@v6
|
|
149
|
+
- run: git fetch --depth=1 origin +refs/tags/*:refs/tags/*
|
|
150
|
+
- name: Set up Ruby
|
|
151
|
+
uses: ruby/setup-ruby@v1
|
|
152
|
+
with:
|
|
153
|
+
ruby-version: ruby
|
|
154
|
+
bundler: none
|
|
155
|
+
- name: Update rubygems & bundler
|
|
156
|
+
run: gem update --system
|
|
157
|
+
- name: Install gems
|
|
158
|
+
run: |
|
|
159
|
+
bundle config set --local without libs:profilers
|
|
160
|
+
bundle install --jobs 4 --retry 3
|
|
161
|
+
- name: Set up vendored RBS source
|
|
162
|
+
run: bundle exec rake rust:rbs:sync
|
|
163
|
+
- name: Install Rust tools
|
|
164
|
+
run: |
|
|
165
|
+
rustup update --no-self-update stable
|
|
166
|
+
rustup default stable
|
|
167
|
+
rustup component add --toolchain stable clippy rustfmt
|
|
168
|
+
- uses: actions/cache@v5
|
|
169
|
+
with:
|
|
170
|
+
path: |
|
|
171
|
+
~/.cargo/registry
|
|
172
|
+
~/.cargo/git
|
|
173
|
+
rust/target
|
|
174
|
+
key: ${{ runner.os }}-cargo-${{ hashFiles('rust/Cargo.lock') }}
|
|
175
|
+
restore-keys: |
|
|
176
|
+
${{ runner.os }}-cargo-
|
|
177
|
+
- name: Check formatting
|
|
178
|
+
run: |
|
|
179
|
+
cd rust
|
|
180
|
+
cargo fmt --check
|
|
181
|
+
- name: Run clippy
|
|
182
|
+
run: |
|
|
183
|
+
cd rust
|
|
184
|
+
cargo clippy
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
name: TruffleRuby
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- master
|
|
7
|
+
pull_request: {}
|
|
8
|
+
merge_group: {}
|
|
9
|
+
|
|
10
|
+
permissions:
|
|
11
|
+
contents: read
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
test:
|
|
15
|
+
runs-on: "ubuntu-latest"
|
|
16
|
+
strategy:
|
|
17
|
+
fail-fast: false
|
|
18
|
+
matrix:
|
|
19
|
+
ruby: ['truffleruby']
|
|
20
|
+
job:
|
|
21
|
+
- test
|
|
22
|
+
env:
|
|
23
|
+
RANDOMIZE_STDLIB_TEST_ORDER: "true"
|
|
24
|
+
# TruffleRuby warns and falls back to US-ASCII unless the locale is UTF-8.
|
|
25
|
+
LANG: "en_US.UTF-8"
|
|
26
|
+
steps:
|
|
27
|
+
- uses: actions/checkout@v6
|
|
28
|
+
- uses: ruby/setup-ruby@v1
|
|
29
|
+
with:
|
|
30
|
+
ruby-version: ${{ matrix.ruby }}
|
|
31
|
+
bundler: none
|
|
32
|
+
- name: Set working directory as safe
|
|
33
|
+
run: git config --global --add safe.directory $(pwd)
|
|
34
|
+
- name: Install dependencies
|
|
35
|
+
run: |
|
|
36
|
+
sudo apt-get update
|
|
37
|
+
sudo apt-get install -y libdb-dev curl autoconf automake m4 libtool python3
|
|
38
|
+
- name: Update rubygems & bundler
|
|
39
|
+
run: |
|
|
40
|
+
ruby -v
|
|
41
|
+
gem update --system
|
|
42
|
+
- name: install erb
|
|
43
|
+
run: gem install erb
|
|
44
|
+
- name: bundle config
|
|
45
|
+
run: |
|
|
46
|
+
# Profilers and the typecheck tooling are not needed for the smoke test,
|
|
47
|
+
# and some of them do not support TruffleRuby.
|
|
48
|
+
bundle config set --local without 'profilers typecheck_test'
|
|
49
|
+
- name: bin/setup
|
|
50
|
+
run: |
|
|
51
|
+
bin/setup
|
|
52
|
+
- name: Run test
|
|
53
|
+
run: |
|
|
54
|
+
bundle exec rake ${{ matrix.job }}
|
|
@@ -7,16 +7,19 @@ on:
|
|
|
7
7
|
pull_request: {}
|
|
8
8
|
merge_group: {}
|
|
9
9
|
|
|
10
|
+
permissions:
|
|
11
|
+
contents: read
|
|
12
|
+
|
|
10
13
|
jobs:
|
|
11
14
|
steep:
|
|
12
15
|
runs-on: "ubuntu-latest"
|
|
13
16
|
strategy:
|
|
14
17
|
fail-fast: false
|
|
15
18
|
steps:
|
|
16
|
-
- uses: actions/checkout@
|
|
19
|
+
- uses: actions/checkout@v6
|
|
17
20
|
- uses: ruby/setup-ruby@v1
|
|
18
21
|
with:
|
|
19
|
-
ruby-version: "3.
|
|
22
|
+
ruby-version: "3.4"
|
|
20
23
|
bundler: none
|
|
21
24
|
- name: Set working directory as safe
|
|
22
25
|
run: git config --global --add safe.directory $(pwd)
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
name: WebAssembly
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- master
|
|
7
|
+
pull_request:
|
|
8
|
+
paths:
|
|
9
|
+
- ".github/workflows/wasm.yml"
|
|
10
|
+
- "Rakefile"
|
|
11
|
+
- "include/**"
|
|
12
|
+
- "src/**"
|
|
13
|
+
- "wasm/**"
|
|
14
|
+
|
|
15
|
+
permissions:
|
|
16
|
+
contents: read
|
|
17
|
+
|
|
18
|
+
env:
|
|
19
|
+
# Pinned so the smoke test is reproducible. Bump together when upgrading.
|
|
20
|
+
WASI_SDK_VERSION: "33"
|
|
21
|
+
WASI_SDK_RELEASE: "33.0"
|
|
22
|
+
WASMTIME_VERSION: "v45.0.2"
|
|
23
|
+
|
|
24
|
+
jobs:
|
|
25
|
+
build:
|
|
26
|
+
name: wasm:check
|
|
27
|
+
runs-on: ubuntu-latest
|
|
28
|
+
steps:
|
|
29
|
+
- uses: actions/checkout@v6
|
|
30
|
+
- run: git fetch --depth=1 origin +refs/tags/*:refs/tags/*
|
|
31
|
+
- name: Set up Ruby
|
|
32
|
+
uses: ruby/setup-ruby@v1
|
|
33
|
+
with:
|
|
34
|
+
ruby-version: ruby
|
|
35
|
+
bundler: none
|
|
36
|
+
- name: Update rubygems & bundler
|
|
37
|
+
run: gem update --system
|
|
38
|
+
- name: Install gems
|
|
39
|
+
run: |
|
|
40
|
+
bundle config set --local without libs:profilers
|
|
41
|
+
bundle install --jobs 4 --retry 3
|
|
42
|
+
- name: Install the WASI SDK
|
|
43
|
+
run: |
|
|
44
|
+
url="https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VERSION}/wasi-sdk-${WASI_SDK_RELEASE}-x86_64-linux.tar.gz"
|
|
45
|
+
mkdir -p "$HOME/wasi-sdk"
|
|
46
|
+
curl -sSL "$url" | tar xz --strip-components=1 -C "$HOME/wasi-sdk"
|
|
47
|
+
echo "WASI_SDK_PATH=$HOME/wasi-sdk" >> "$GITHUB_ENV"
|
|
48
|
+
- name: Install wasmtime
|
|
49
|
+
uses: bytecodealliance/actions/wasmtime/setup@v1
|
|
50
|
+
with:
|
|
51
|
+
version: ${{ env.WASMTIME_VERSION }}
|
|
52
|
+
- name: Build and smoke-test the WebAssembly module
|
|
53
|
+
run: bundle exec rake wasm:check
|
|
@@ -7,15 +7,18 @@ on:
|
|
|
7
7
|
pull_request: {}
|
|
8
8
|
merge_group: {}
|
|
9
9
|
|
|
10
|
+
permissions:
|
|
11
|
+
contents: read
|
|
12
|
+
|
|
10
13
|
jobs:
|
|
11
14
|
compile:
|
|
12
15
|
runs-on: "windows-latest"
|
|
13
16
|
strategy:
|
|
14
17
|
fail-fast: false
|
|
15
18
|
matrix:
|
|
16
|
-
ruby: ['3.
|
|
19
|
+
ruby: ['3.4', ucrt, mswin]
|
|
17
20
|
steps:
|
|
18
|
-
- uses: actions/checkout@
|
|
21
|
+
- uses: actions/checkout@v6
|
|
19
22
|
- name: load ruby
|
|
20
23
|
uses: ruby/setup-ruby@v1
|
|
21
24
|
with:
|
|
@@ -35,6 +38,9 @@ jobs:
|
|
|
35
38
|
bundled_gems = JSON.parse(res)["gems"].map{_1["gem"]}
|
|
36
39
|
system "gem uninstall #{bundled_gems.join(" ")} --force", exception: true
|
|
37
40
|
'
|
|
41
|
+
- name: Ignore Gemfile.lock's BUNDLED WITH on dev Ruby
|
|
42
|
+
if: ${{ matrix.ruby == 'ucrt' || matrix.ruby == 'mswin' }}
|
|
43
|
+
run: bundle config set --local version system
|
|
38
44
|
- name: bundle install
|
|
39
45
|
run: |
|
|
40
46
|
bundle config set without profilers libs
|
data/.gitignore
CHANGED
|
@@ -25,3 +25,14 @@ doc/
|
|
|
25
25
|
# For clangd's editor integration
|
|
26
26
|
ext/rbs_extension/compile_commands.json
|
|
27
27
|
ext/rbs_extension/.cache
|
|
28
|
+
|
|
29
|
+
# Rust crate vendored RBS source (managed by rake rust:rbs:sync or rust:rbs:symlink)
|
|
30
|
+
rust/ruby-rbs-sys/vendor/rbs/
|
|
31
|
+
rust/ruby-rbs/vendor/rbs/
|
|
32
|
+
|
|
33
|
+
# Compiled WebAssembly module (built by rake wasm:build)
|
|
34
|
+
wasm/*.wasm
|
|
35
|
+
|
|
36
|
+
# JRuby runtime artifacts (assembled by rake wasm:jruby_setup, bundled in the JRuby gem)
|
|
37
|
+
lib/rbs/wasm/*.wasm
|
|
38
|
+
lib/rbs/wasm/jars/
|