automerge-rb 0.1.1
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 +7 -0
- data/LICENSE.txt +22 -0
- data/README.md +175 -0
- data/ext/automerge_ext/automerge_ext.c +1805 -0
- data/ext/automerge_ext/extconf.rb +132 -0
- data/lib/automerge/version.rb +6 -0
- data/lib/automerge.rb +110 -0
- data/rust-toolchain.toml +4 -0
- data/vendor/automerge-rust/Cargo.lock +1909 -0
- data/vendor/automerge-rust/Cargo.toml +15 -0
- data/vendor/automerge-rust/automerge/Cargo.toml +78 -0
- data/vendor/automerge-rust/automerge/README.md +5 -0
- data/vendor/automerge-rust/automerge/benches/load_save.rs +102 -0
- data/vendor/automerge-rust/automerge/benches/map.rs +260 -0
- data/vendor/automerge-rust/automerge/benches/range.rs +37 -0
- data/vendor/automerge-rust/automerge/benches/sync.rs +95 -0
- data/vendor/automerge-rust/automerge/examples/README.md +7 -0
- data/vendor/automerge-rust/automerge/examples/quickstart.rs +57 -0
- data/vendor/automerge-rust/automerge/examples/watch.rs +94 -0
- data/vendor/automerge-rust/automerge/fuzz/Cargo.toml +29 -0
- data/vendor/automerge-rust/automerge/fuzz/fuzz_targets/load.rs +37 -0
- data/vendor/automerge-rust/automerge/src/autocommit.rs +1286 -0
- data/vendor/automerge-rust/automerge/src/automerge/current_state.rs +546 -0
- data/vendor/automerge-rust/automerge/src/automerge/tests.rs +2023 -0
- data/vendor/automerge-rust/automerge/src/automerge.rs +2071 -0
- data/vendor/automerge-rust/automerge/src/autoserde.rs +128 -0
- data/vendor/automerge-rust/automerge/src/change.rs +357 -0
- data/vendor/automerge-rust/automerge/src/change_graph.rs +1215 -0
- data/vendor/automerge-rust/automerge/src/change_queue.rs +46 -0
- data/vendor/automerge-rust/automerge/src/clock.rs +206 -0
- data/vendor/automerge-rust/automerge/src/columnar/column_range/boolean.rs +83 -0
- data/vendor/automerge-rust/automerge/src/columnar/column_range/delta.rs +148 -0
- data/vendor/automerge-rust/automerge/src/columnar/column_range/generic/group.rs +138 -0
- data/vendor/automerge-rust/automerge/src/columnar/column_range/generic/simple.rs +76 -0
- data/vendor/automerge-rust/automerge/src/columnar/column_range/generic.rs +93 -0
- data/vendor/automerge-rust/automerge/src/columnar/column_range/key.rs +272 -0
- data/vendor/automerge-rust/automerge/src/columnar/column_range/obj_id.rs +202 -0
- data/vendor/automerge-rust/automerge/src/columnar/column_range/opid_list.rs +329 -0
- data/vendor/automerge-rust/automerge/src/columnar/column_range/raw.rs +38 -0
- data/vendor/automerge-rust/automerge/src/columnar/column_range/rle.rs +216 -0
- data/vendor/automerge-rust/automerge/src/columnar/column_range/value.rs +547 -0
- data/vendor/automerge-rust/automerge/src/columnar/column_range.rs +17 -0
- data/vendor/automerge-rust/automerge/src/columnar/encoding/boolean.rs +197 -0
- data/vendor/automerge-rust/automerge/src/columnar/encoding/col_error.rs +88 -0
- data/vendor/automerge-rust/automerge/src/columnar/encoding/column_decoder.rs +133 -0
- data/vendor/automerge-rust/automerge/src/columnar/encoding/decodable_impls.rs +175 -0
- data/vendor/automerge-rust/automerge/src/columnar/encoding/delta.rs +96 -0
- data/vendor/automerge-rust/automerge/src/columnar/encoding/encodable_impls.rs +200 -0
- data/vendor/automerge-rust/automerge/src/columnar/encoding/leb128.rs +82 -0
- data/vendor/automerge-rust/automerge/src/columnar/encoding/properties.rs +178 -0
- data/vendor/automerge-rust/automerge/src/columnar/encoding/raw.rs +101 -0
- data/vendor/automerge-rust/automerge/src/columnar/encoding/rle.rs +239 -0
- data/vendor/automerge-rust/automerge/src/columnar/encoding.rs +67 -0
- data/vendor/automerge-rust/automerge/src/columnar/splice_error.rs +47 -0
- data/vendor/automerge-rust/automerge/src/columnar.rs +14 -0
- data/vendor/automerge-rust/automerge/src/convert.rs +112 -0
- data/vendor/automerge-rust/automerge/src/cursor.rs +296 -0
- data/vendor/automerge-rust/automerge/src/decoding.rs +475 -0
- data/vendor/automerge-rust/automerge/src/error.rs +159 -0
- data/vendor/automerge-rust/automerge/src/exid.rs +238 -0
- data/vendor/automerge-rust/automerge/src/hydrate/list.rs +140 -0
- data/vendor/automerge-rust/automerge/src/hydrate/map.rs +132 -0
- data/vendor/automerge-rust/automerge/src/hydrate/tests.rs +40 -0
- data/vendor/automerge-rust/automerge/src/hydrate/text.rs +89 -0
- data/vendor/automerge-rust/automerge/src/hydrate.rs +368 -0
- data/vendor/automerge-rust/automerge/src/indexed_cache.rs +113 -0
- data/vendor/automerge-rust/automerge/src/iter/doc.rs +603 -0
- data/vendor/automerge-rust/automerge/src/iter/keys.rs +93 -0
- data/vendor/automerge-rust/automerge/src/iter/list_range.rs +433 -0
- data/vendor/automerge-rust/automerge/src/iter/map_range.rs +316 -0
- data/vendor/automerge-rust/automerge/src/iter/spans.rs +601 -0
- data/vendor/automerge-rust/automerge/src/iter/tools.rs +427 -0
- data/vendor/automerge-rust/automerge/src/iter/values.rs +36 -0
- data/vendor/automerge-rust/automerge/src/iter.rs +25 -0
- data/vendor/automerge-rust/automerge/src/legacy/mod.rs +364 -0
- data/vendor/automerge-rust/automerge/src/legacy/serde_impls/actor_id.rs +25 -0
- data/vendor/automerge-rust/automerge/src/legacy/serde_impls/change_hash.rs +29 -0
- data/vendor/automerge-rust/automerge/src/legacy/serde_impls/element_id.rs +27 -0
- data/vendor/automerge-rust/automerge/src/legacy/serde_impls/mod.rs +31 -0
- data/vendor/automerge-rust/automerge/src/legacy/serde_impls/object_id.rs +36 -0
- data/vendor/automerge-rust/automerge/src/legacy/serde_impls/op.rs +668 -0
- data/vendor/automerge-rust/automerge/src/legacy/serde_impls/op_type.rs +26 -0
- data/vendor/automerge-rust/automerge/src/legacy/serde_impls/opid.rs +25 -0
- data/vendor/automerge-rust/automerge/src/legacy/serde_impls/scalar_value.rs +63 -0
- data/vendor/automerge-rust/automerge/src/legacy/utility_impls/element_id.rs +66 -0
- data/vendor/automerge-rust/automerge/src/legacy/utility_impls/key.rs +49 -0
- data/vendor/automerge-rust/automerge/src/legacy/utility_impls/mod.rs +4 -0
- data/vendor/automerge-rust/automerge/src/legacy/utility_impls/object_id.rs +74 -0
- data/vendor/automerge-rust/automerge/src/legacy/utility_impls/opid.rs +68 -0
- data/vendor/automerge-rust/automerge/src/lib.rs +315 -0
- data/vendor/automerge-rust/automerge/src/marks.rs +478 -0
- data/vendor/automerge-rust/automerge/src/op_set2/change/batch.rs +2002 -0
- data/vendor/automerge-rust/automerge/src/op_set2/change/collector.rs +974 -0
- data/vendor/automerge-rust/automerge/src/op_set2/change.rs +332 -0
- data/vendor/automerge-rust/automerge/src/op_set2/columns.rs +714 -0
- data/vendor/automerge-rust/automerge/src/op_set2/meta.rs +174 -0
- data/vendor/automerge-rust/automerge/src/op_set2/op.rs +1363 -0
- data/vendor/automerge-rust/automerge/src/op_set2/op_set/elems.rs +43 -0
- data/vendor/automerge-rust/automerge/src/op_set2/op_set/found_op.rs +60 -0
- data/vendor/automerge-rust/automerge/src/op_set2/op_set/index.rs +197 -0
- data/vendor/automerge-rust/automerge/src/op_set2/op_set/insert.rs +179 -0
- data/vendor/automerge-rust/automerge/src/op_set2/op_set/mark_index.rs +292 -0
- data/vendor/automerge-rust/automerge/src/op_set2/op_set/marks.rs +86 -0
- data/vendor/automerge-rust/automerge/src/op_set2/op_set/op_iter.rs +1295 -0
- data/vendor/automerge-rust/automerge/src/op_set2/op_set/op_query.rs +82 -0
- data/vendor/automerge-rust/automerge/src/op_set2/op_set/top_op.rs +50 -0
- data/vendor/automerge-rust/automerge/src/op_set2/op_set/visible.rs +290 -0
- data/vendor/automerge-rust/automerge/src/op_set2/op_set.rs +1793 -0
- data/vendor/automerge-rust/automerge/src/op_set2/parents.rs +133 -0
- data/vendor/automerge-rust/automerge/src/op_set2/skip_list.rs +714 -0
- data/vendor/automerge-rust/automerge/src/op_set2/types.rs +769 -0
- data/vendor/automerge-rust/automerge/src/op_set2.rs +18 -0
- data/vendor/automerge-rust/automerge/src/patches/patch.rs +95 -0
- data/vendor/automerge-rust/automerge/src/patches/patch_builder.rs +382 -0
- data/vendor/automerge-rust/automerge/src/patches/patch_log.rs +584 -0
- data/vendor/automerge-rust/automerge/src/patches.rs +7 -0
- data/vendor/automerge-rust/automerge/src/query/list_state.rs +230 -0
- data/vendor/automerge-rust/automerge/src/query/seek_mark.rs +142 -0
- data/vendor/automerge-rust/automerge/src/read.rs +326 -0
- data/vendor/automerge-rust/automerge/src/sequence_tree.rs +662 -0
- data/vendor/automerge-rust/automerge/src/storage/bundle/builder.rs +942 -0
- data/vendor/automerge-rust/automerge/src/storage/bundle/error.rs +42 -0
- data/vendor/automerge-rust/automerge/src/storage/bundle/meta.rs +23 -0
- data/vendor/automerge-rust/automerge/src/storage/bundle/storage.rs +146 -0
- data/vendor/automerge-rust/automerge/src/storage/bundle.rs +210 -0
- data/vendor/automerge-rust/automerge/src/storage/change/change_actors.rs +311 -0
- data/vendor/automerge-rust/automerge/src/storage/change/change_op_columns.rs +621 -0
- data/vendor/automerge-rust/automerge/src/storage/change/compressed.rs +51 -0
- data/vendor/automerge-rust/automerge/src/storage/change/op_with_change_actors.rs +1 -0
- data/vendor/automerge-rust/automerge/src/storage/change.rs +523 -0
- data/vendor/automerge-rust/automerge/src/storage/chunk.rs +312 -0
- data/vendor/automerge-rust/automerge/src/storage/columns/column.rs +42 -0
- data/vendor/automerge-rust/automerge/src/storage/columns/column_builder.rs +199 -0
- data/vendor/automerge-rust/automerge/src/storage/columns/column_specification.rs +340 -0
- data/vendor/automerge-rust/automerge/src/storage/columns/raw_column.rs +286 -0
- data/vendor/automerge-rust/automerge/src/storage/columns.rs +355 -0
- data/vendor/automerge-rust/automerge/src/storage/document/compression.rs +362 -0
- data/vendor/automerge-rust/automerge/src/storage/document.rs +411 -0
- data/vendor/automerge-rust/automerge/src/storage/load/change_collector.rs +15 -0
- data/vendor/automerge-rust/automerge/src/storage/load.rs +136 -0
- data/vendor/automerge-rust/automerge/src/storage/parse/leb128.rs +302 -0
- data/vendor/automerge-rust/automerge/src/storage/parse.rs +619 -0
- data/vendor/automerge-rust/automerge/src/storage/save/document.rs +27 -0
- data/vendor/automerge-rust/automerge/src/storage.rs +26 -0
- data/vendor/automerge-rust/automerge/src/sync/bloom.rs +161 -0
- data/vendor/automerge-rust/automerge/src/sync/message_builder.rs +118 -0
- data/vendor/automerge-rust/automerge/src/sync/state.rs +214 -0
- data/vendor/automerge-rust/automerge/src/sync/v1_compat_test/bloom.rs +162 -0
- data/vendor/automerge-rust/automerge/src/sync/v1_compat_test/mod.rs +625 -0
- data/vendor/automerge-rust/automerge/src/sync/v1_compat_test/state.rs +120 -0
- data/vendor/automerge-rust/automerge/src/sync.rs +2482 -0
- data/vendor/automerge-rust/automerge/src/text_diff/LICENSE +201 -0
- data/vendor/automerge-rust/automerge/src/text_diff/myers.rs +332 -0
- data/vendor/automerge-rust/automerge/src/text_diff/replace.rs +139 -0
- data/vendor/automerge-rust/automerge/src/text_diff/utils.rs +119 -0
- data/vendor/automerge-rust/automerge/src/text_diff.rs +515 -0
- data/vendor/automerge-rust/automerge/src/text_value.rs +276 -0
- data/vendor/automerge-rust/automerge/src/transaction/commit.rs +34 -0
- data/vendor/automerge-rust/automerge/src/transaction/inner.rs +1403 -0
- data/vendor/automerge-rust/automerge/src/transaction/manual_transaction.rs +147 -0
- data/vendor/automerge-rust/automerge/src/transaction/owned_transaction.rs +266 -0
- data/vendor/automerge-rust/automerge/src/transaction/result.rs +21 -0
- data/vendor/automerge-rust/automerge/src/transaction/transactable.rs +203 -0
- data/vendor/automerge-rust/automerge/src/transaction.rs +513 -0
- data/vendor/automerge-rust/automerge/src/types.rs +749 -0
- data/vendor/automerge-rust/automerge/src/validation.rs +29 -0
- data/vendor/automerge-rust/automerge/src/value.rs +763 -0
- data/vendor/automerge-rust/automerge/tests/batch_insert.rs +1034 -0
- data/vendor/automerge-rust/automerge/tests/block_tests.rs +887 -0
- data/vendor/automerge-rust/automerge/tests/convert_string_to_text.rs +72 -0
- data/vendor/automerge-rust/automerge/tests/diff_marks.rs +1508 -0
- data/vendor/automerge-rust/automerge/tests/fixtures/64bit_obj_id_change.automerge +0 -0
- data/vendor/automerge-rust/automerge/tests/fixtures/64bit_obj_id_doc.automerge +0 -0
- data/vendor/automerge-rust/automerge/tests/fixtures/counter_value_has_incorrect_meta.automerge +0 -0
- data/vendor/automerge-rust/automerge/tests/fixtures/counter_value_is_ok.automerge +0 -0
- data/vendor/automerge-rust/automerge/tests/fixtures/counter_value_is_overlong.automerge +0 -0
- data/vendor/automerge-rust/automerge/tests/fixtures/two_change_chunks.automerge +0 -0
- data/vendor/automerge-rust/automerge/tests/fixtures/two_change_chunks_compressed.automerge +0 -0
- data/vendor/automerge-rust/automerge/tests/fixtures/two_change_chunks_out_of_order.automerge +0 -0
- data/vendor/automerge-rust/automerge/tests/fuzz-crashers/action-is-48.automerge +0 -0
- data/vendor/automerge-rust/automerge/tests/fuzz-crashers/crash-da39a3ee5e6b4b0d3255bfef95601890afd80709 +0 -0
- data/vendor/automerge-rust/automerge/tests/fuzz-crashers/incorrect_max_op.automerge +0 -0
- data/vendor/automerge-rust/automerge/tests/fuzz-crashers/invalid_deflate_stream.automerge +0 -0
- data/vendor/automerge-rust/automerge/tests/fuzz-crashers/missing_actor.automerge +0 -0
- data/vendor/automerge-rust/automerge/tests/fuzz-crashers/overflow_in_length.automerge +0 -0
- data/vendor/automerge-rust/automerge/tests/fuzz-crashers/too_many_deps.automerge +0 -0
- data/vendor/automerge-rust/automerge/tests/fuzz-crashers/too_many_ops.automerge +0 -0
- data/vendor/automerge-rust/automerge/tests/test.rs +2668 -0
- data/vendor/automerge-rust/automerge/tests/test_mark_patches.rs +41 -0
- data/vendor/automerge-rust/automerge/tests/test_save_load_orphans.rs +84 -0
- data/vendor/automerge-rust/automerge/tests/text.rs +1098 -0
- data/vendor/automerge-rust/automerge/tests/text_encoding.rs +640 -0
- data/vendor/automerge-rust/automerge-c/CMakeLists.txt +439 -0
- data/vendor/automerge-rust/automerge-c/Cargo.toml +22 -0
- data/vendor/automerge-rust/automerge-c/README.md +233 -0
- data/vendor/automerge-rust/automerge-c/build.rs +21 -0
- data/vendor/automerge-rust/automerge-c/cbindgen.toml +48 -0
- data/vendor/automerge-rust/automerge-c/cmake/Cargo.toml.in +22 -0
- data/vendor/automerge-rust/automerge-c/cmake/automerge-c-config.cmake.in +99 -0
- data/vendor/automerge-rust/automerge-c/cmake/cbindgen.toml.in +48 -0
- data/vendor/automerge-rust/automerge-c/cmake/config.h.in +58 -0
- data/vendor/automerge-rust/automerge-c/cmake/enum-string-functions-gen.cmake +183 -0
- data/vendor/automerge-rust/automerge-c/cmake/file-regex-replace.cmake +33 -0
- data/vendor/automerge-rust/automerge-c/cmake/file-touch.cmake +35 -0
- data/vendor/automerge-rust/automerge-c/docs/CMakeLists.txt +39 -0
- data/vendor/automerge-rust/automerge-c/docs/img/brandmark.png +0 -0
- data/vendor/automerge-rust/automerge-c/examples/CMakeLists.txt +42 -0
- data/vendor/automerge-rust/automerge-c/examples/README.md +9 -0
- data/vendor/automerge-rust/automerge-c/examples/quickstart.c +131 -0
- data/vendor/automerge-rust/automerge-c/include/automerge-c/utils/result.h +30 -0
- data/vendor/automerge-rust/automerge-c/include/automerge-c/utils/stack.h +130 -0
- data/vendor/automerge-rust/automerge-c/include/automerge-c/utils/stack_callback_data.h +53 -0
- data/vendor/automerge-rust/automerge-c/include/automerge-c/utils/string.h +29 -0
- data/vendor/automerge-rust/automerge-c/src/actor_id.rs +193 -0
- data/vendor/automerge-rust/automerge-c/src/byte_span.rs +227 -0
- data/vendor/automerge-rust/automerge-c/src/change.rs +356 -0
- data/vendor/automerge-rust/automerge-c/src/cursor.rs +168 -0
- data/vendor/automerge-rust/automerge-c/src/doc/list.rs +636 -0
- data/vendor/automerge-rust/automerge-c/src/doc/map.rs +556 -0
- data/vendor/automerge-rust/automerge-c/src/doc/mark.rs +296 -0
- data/vendor/automerge-rust/automerge-c/src/doc/utils.rs +46 -0
- data/vendor/automerge-rust/automerge-c/src/doc.rs +1009 -0
- data/vendor/automerge-rust/automerge-c/src/index.rs +84 -0
- data/vendor/automerge-rust/automerge-c/src/item.rs +2177 -0
- data/vendor/automerge-rust/automerge-c/src/items.rs +401 -0
- data/vendor/automerge-rust/automerge-c/src/lib.rs +11 -0
- data/vendor/automerge-rust/automerge-c/src/obj.rs +216 -0
- data/vendor/automerge-rust/automerge-c/src/result.rs +653 -0
- data/vendor/automerge-rust/automerge-c/src/sync/have.rs +42 -0
- data/vendor/automerge-rust/automerge-c/src/sync/message.rs +146 -0
- data/vendor/automerge-rust/automerge-c/src/sync/state.rs +262 -0
- data/vendor/automerge-rust/automerge-c/src/sync.rs +7 -0
- data/vendor/automerge-rust/automerge-c/src/utils/result.c +33 -0
- data/vendor/automerge-rust/automerge-c/src/utils/stack.c +106 -0
- data/vendor/automerge-rust/automerge-c/src/utils/stack_callback_data.c +9 -0
- data/vendor/automerge-rust/automerge-c/src/utils/string.c +46 -0
- data/vendor/automerge-rust/automerge-c/test/CMakeLists.txt +67 -0
- data/vendor/automerge-rust/automerge-c/test/actor_id_tests.c +140 -0
- data/vendor/automerge-rust/automerge-c/test/base_state.c +17 -0
- data/vendor/automerge-rust/automerge-c/test/base_state.h +39 -0
- data/vendor/automerge-rust/automerge-c/test/byte_span_tests.c +119 -0
- data/vendor/automerge-rust/automerge-c/test/cmocka_utils.c +91 -0
- data/vendor/automerge-rust/automerge-c/test/cmocka_utils.h +42 -0
- data/vendor/automerge-rust/automerge-c/test/cursor_tests.c +263 -0
- data/vendor/automerge-rust/automerge-c/test/doc_state.c +27 -0
- data/vendor/automerge-rust/automerge-c/test/doc_state.h +17 -0
- data/vendor/automerge-rust/automerge-c/test/doc_tests.c +335 -0
- data/vendor/automerge-rust/automerge-c/test/enum_string_tests.c +148 -0
- data/vendor/automerge-rust/automerge-c/test/files/brave-ape-49.automerge +0 -0
- data/vendor/automerge-rust/automerge-c/test/item_tests.c +313 -0
- data/vendor/automerge-rust/automerge-c/test/list_tests.c +544 -0
- data/vendor/automerge-rust/automerge-c/test/macro_utils.c +38 -0
- data/vendor/automerge-rust/automerge-c/test/macro_utils.h +23 -0
- data/vendor/automerge-rust/automerge-c/test/main.c +33 -0
- data/vendor/automerge-rust/automerge-c/test/map_tests.c +1610 -0
- data/vendor/automerge-rust/automerge-c/test/mark_tests.c +124 -0
- data/vendor/automerge-rust/automerge-c/test/ported_wasm/basic_tests.c +1642 -0
- data/vendor/automerge-rust/automerge-c/test/ported_wasm/cursor_tests.c +108 -0
- data/vendor/automerge-rust/automerge-c/test/ported_wasm/suite.c +17 -0
- data/vendor/automerge-rust/automerge-c/test/ported_wasm/sync_tests.c +1280 -0
- data/vendor/automerge-rust/automerge-c/test/str_utils.c +15 -0
- data/vendor/automerge-rust/automerge-c/test/str_utils.h +17 -0
- data/vendor/automerge-rust/automerge-test/Cargo.toml +17 -0
- data/vendor/automerge-rust/automerge-test/README.md +3 -0
- data/vendor/automerge-rust/automerge-test/src/lib.rs +487 -0
- data/vendor/automerge-rust/hexane/CHANGELOG.md +34 -0
- data/vendor/automerge-rust/hexane/Cargo.toml +47 -0
- data/vendor/automerge-rust/hexane/README.md +292 -0
- data/vendor/automerge-rust/hexane/RESULTS.txt +20 -0
- data/vendor/automerge-rust/hexane/TODO +18 -0
- data/vendor/automerge-rust/hexane/benches/insert.rs +82 -0
- data/vendor/automerge-rust/hexane/benches/seek.rs +77 -0
- data/vendor/automerge-rust/hexane/benches/splice.rs +82 -0
- data/vendor/automerge-rust/hexane/src/aggregate.rs +288 -0
- data/vendor/automerge-rust/hexane/src/boolean.rs +478 -0
- data/vendor/automerge-rust/hexane/src/columndata.rs +2540 -0
- data/vendor/automerge-rust/hexane/src/cursor.rs +756 -0
- data/vendor/automerge-rust/hexane/src/delta.rs +793 -0
- data/vendor/automerge-rust/hexane/src/encoder.rs +639 -0
- data/vendor/automerge-rust/hexane/src/leb128.rs +82 -0
- data/vendor/automerge-rust/hexane/src/lib.rs +95 -0
- data/vendor/automerge-rust/hexane/src/pack.rs +325 -0
- data/vendor/automerge-rust/hexane/src/raw.rs +314 -0
- data/vendor/automerge-rust/hexane/src/rle.rs +928 -0
- data/vendor/automerge-rust/hexane/src/slab/tree.rs +1373 -0
- data/vendor/automerge-rust/hexane/src/slab/writer.rs +535 -0
- data/vendor/automerge-rust/hexane/src/slab.rs +224 -0
- data/vendor/automerge-rust/hexane/src/test.rs +108 -0
- data/vendor/bundle/ruby/3.3.0/bin/rake +29 -0
- data/vendor/bundle/ruby/3.3.0/bin/rake-compiler +29 -0
- data/vendor/bundle/ruby/3.3.0/bin/rake-compiler-dock +29 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/History.rdoc +1732 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/Manifest.txt +32 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/README.rdoc +845 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/Rakefile +97 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/design_rationale.rb +54 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/hoe/minitest.rb +30 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/assertions.rb +850 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/autorun.rb +6 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/benchmark.rb +452 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/compress.rb +94 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/error_on_warning.rb +11 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/expectations.rb +321 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/hell.rb +11 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/manual_plugins.rb +16 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/mock.rb +327 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/parallel.rb +72 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/pride.rb +4 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/pride_plugin.rb +135 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/spec.rb +353 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/test.rb +238 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/test_task.rb +324 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/unit.rb +42 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest.rb +1250 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/test/minitest/metametameta.rb +150 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/test/minitest/test_minitest_assertions.rb +1677 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/test/minitest/test_minitest_benchmark.rb +137 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/test/minitest/test_minitest_mock.rb +1213 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/test/minitest/test_minitest_reporter.rb +437 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/test/minitest/test_minitest_spec.rb +1159 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/test/minitest/test_minitest_test.rb +1374 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/test/minitest/test_minitest_test_task.rb +57 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/History.rdoc +2454 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/MIT-LICENSE +21 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/README.rdoc +155 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/command_line_usage.rdoc +171 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/example/Rakefile1 +38 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/example/Rakefile2 +35 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/example/a.c +6 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/example/b.c +6 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/example/main.c +11 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/glossary.rdoc +42 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/jamis.rb +592 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/proto_rake.rdoc +127 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/rake.1 +156 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/rakefile.rdoc +635 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/rational.rdoc +151 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/exe/rake +27 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/application.rb +847 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/backtrace.rb +25 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/clean.rb +78 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/cloneable.rb +17 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/cpu_counter.rb +122 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/default_loader.rb +15 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/dsl_definition.rb +196 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/early_time.rb +22 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/ext/core.rb +26 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/ext/string.rb +176 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/file_creation_task.rb +25 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/file_list.rb +435 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/file_task.rb +58 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/file_utils.rb +137 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/file_utils_ext.rb +135 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/invocation_chain.rb +57 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/invocation_exception_mixin.rb +17 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/late_time.rb +18 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/linked_list.rb +112 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/loaders/makefile.rb +54 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/multi_task.rb +14 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/name_space.rb +38 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/options.rb +31 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/packagetask.rb +222 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/phony.rb +16 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/private_reader.rb +21 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/promise.rb +100 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/pseudo_status.rb +30 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/rake_module.rb +67 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/rake_test_loader.rb +27 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/rule_recursion_overflow_error.rb +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/scope.rb +43 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/task.rb +434 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/task_argument_error.rb +8 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/task_arguments.rb +113 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/task_manager.rb +333 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/tasklib.rb +12 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/testtask.rb +192 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/thread_history_display.rb +49 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/thread_pool.rb +157 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/trace_output.rb +23 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/version.rb +10 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/win32.rb +17 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake.rb +69 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/rake.gemspec +102 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/Gemfile +8 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/History.md +695 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/LICENSE.txt +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/README.md +476 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/Rakefile +15 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/appveyor.yml +22 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/bin/rake-compiler +24 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/cucumber.yml +4 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/compile.feature +79 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/cross-compile.feature +23 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/cross-package-multi.feature +15 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/cross-package.feature +14 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/java-compile.feature +22 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/java-no-native-compile.feature +33 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/java-package.feature +24 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/package.feature +40 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/step_definitions/compilation.rb +70 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/step_definitions/cross_compilation.rb +27 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/step_definitions/execution.rb +52 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/step_definitions/folders.rb +32 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/step_definitions/gem.rb +46 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/step_definitions/java_compilation.rb +7 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/support/env.rb +10 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/support/file_template_helpers.rb +137 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/support/generator_helpers.rb +123 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/support/platform_extension_helpers.rb +27 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/lib/rake/baseextensiontask.rb +90 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/lib/rake/compiler_config.rb +38 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/lib/rake/extensioncompiler.rb +51 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/lib/rake/extensiontask.rb +589 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/lib/rake/javaextensiontask.rb +321 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/tasks/bin/cross-ruby.rake +189 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/tasks/bootstrap.rake +11 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/tasks/common.rake +10 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/tasks/cucumber.rake +23 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/tasks/gem.rake +15 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/tasks/rspec.rake +9 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/CHANGELOG.md +446 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/CONTRIBUTING.md +109 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/Dockerfile.jruby +79 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/Dockerfile.mri.erb +282 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/Gemfile +8 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/LICENSE.txt +22 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/README.md +447 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/Rakefile +246 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/bin/rake-compiler-dock +18 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/buildkitd.toml +2 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/gem_helper.rb +54 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/mk_i686.rb +18 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/mk_musl_cross.sh +37 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/mk_osxcross.sh +45 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/mk_pkg_config.sh +24 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/parallel_docker_build.rb +169 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/patches/rake-compiler-1.3.1/0004-Enable-build-of-static-libruby.patch +38 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/patches/rake-compiler-1.3.1/0005-build-miniruby-first.patch +16 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/patches/rake-compiler-1.3.1/0006-ruby-4-rubyspec-capiext.patch +16 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/rcd-env.sh +6 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/runas +7 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/sigfw.c +45 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/strip_wrapper_codesign +17 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/strip_wrapper_vbox +30 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/sudoers +1 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/lib/rake_compiler_dock/colors.rb +43 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/lib/rake_compiler_dock/docker_check.rb +356 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/lib/rake_compiler_dock/predefined_user_group.rb +5 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/lib/rake_compiler_dock/starter.rb +206 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/lib/rake_compiler_dock/version.rb +4 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/lib/rake_compiler_dock.rb +151 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/mingw64-ucrt/Dockerfile +66 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/mingw64-ucrt/README.md +14 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/mingw64-ucrt/binutils-mingw-w64-ignore-check-errors.patch +13 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/mingw64-ucrt/gcc-mingw-w64-only-c-c++.patch +13 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/mingw64-ucrt/mingw-w64-enable-ucrt.patch +22 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/rake-compiler-dock.gemspec +34 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/env/Dockerfile.alpine +17 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/env/Dockerfile.debian +24 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/fixtures/mig_test_rpc.defs +8 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/Gemfile +11 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/Rakefile +97 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/ext/java/RcdTestExtService.java +19 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/ext/java/RubyRcdTest.java +16 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/ext/mri/extconf.rb +111 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/ext/mri/rcd_test_ext.c +65 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/ext/mri/rcd_test_ext.h +11 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/lib/rcd_test.rb +6 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/rcd_test.gemspec +28 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/test/test_basic.rb +49 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/test_environment_variables.rb +108 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/test_mig.rb +18 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/test_parallel_docker_build.rb +95 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/test_rubygems_plugins.rb +12 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/test_starter.rb +158 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/test_versions.rb +82 -0
- data/vendor/bundle/ruby/3.3.0/specifications/minitest-5.27.0.gemspec +32 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rake-13.4.2.gemspec +26 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rake-compiler-1.3.1.gemspec +33 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rake-compiler-dock-1.12.0.gemspec +28 -0
- metadata +584 -0
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
|
|
2
|
+
# We do ruby version check at runtime, so this file should be kept ruby-1.8 compatible.
|
|
3
|
+
if (m=RUBY_VERSION.match(/^(\d+)\.(\d+)\.(\d+)/)) &&
|
|
4
|
+
m.captures.map(&:to_i).pack("N*") < [1,9,2].pack("N*")
|
|
5
|
+
raise "rake-compiler-dock requires at least RUBY_VERSION >= 1.9.2"
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
require "rake_compiler_dock/colors"
|
|
9
|
+
require "rake_compiler_dock/docker_check"
|
|
10
|
+
require "rake_compiler_dock/starter"
|
|
11
|
+
require "rake_compiler_dock/version"
|
|
12
|
+
require "rake_compiler_dock/predefined_user_group"
|
|
13
|
+
|
|
14
|
+
module RakeCompilerDock
|
|
15
|
+
|
|
16
|
+
# Run the command cmd within a fresh rake-compiler-dock container and within a shell.
|
|
17
|
+
#
|
|
18
|
+
# If a block is given, upon command completion the block is called with an OK flag (true on a zero exit status) and a Process::Status object.
|
|
19
|
+
# Without a block a RuntimeError is raised when the command exits non-zero.
|
|
20
|
+
#
|
|
21
|
+
# Option +:verbose+ can be set to enable printing of the command line.
|
|
22
|
+
# If not set, rake's verbose flag is used.
|
|
23
|
+
#
|
|
24
|
+
# Option +:rubyvm+ can be set to +:mri+ or +:jruby+ .
|
|
25
|
+
# It selects the docker image with an appropriate toolchain.
|
|
26
|
+
#
|
|
27
|
+
# Option +:platform+ can be set to a list of space separated values.
|
|
28
|
+
# It selects the docker image(s) with an appropriate toolchain.
|
|
29
|
+
# Allowed values are +aarch64-linux-gnu+, +arm-linux-gnu+, +arm64-darwin+, +x64-mingw-ucrt+,
|
|
30
|
+
# +x64-mingw32+, +x86-linux-gnu+, +x86-mingw32+, +x86_64-darwin+, +x86_64-linux-gnu+.
|
|
31
|
+
# If the list contains multiple values, +cmd+ is consecutively executed in each of the docker images,
|
|
32
|
+
# Option +:platform+ is ignored when +:rubyvm+ is set to +:jruby+.
|
|
33
|
+
# Default is "x86-mingw32 x64-mingw32" .
|
|
34
|
+
#
|
|
35
|
+
# Examples:
|
|
36
|
+
#
|
|
37
|
+
# RakeCompilerDock.sh 'bundle && rake cross native gem'
|
|
38
|
+
#
|
|
39
|
+
# Check exit status after command runs:
|
|
40
|
+
#
|
|
41
|
+
# sh %{bundle && rake cross native gem}, verbose: false do |ok, res|
|
|
42
|
+
# if ! ok
|
|
43
|
+
# puts "windows cross build failed (status = #{res.exitstatus})"
|
|
44
|
+
# end
|
|
45
|
+
# end
|
|
46
|
+
def sh(cmd, options={}, &block)
|
|
47
|
+
Starter.sh(cmd, options, &block)
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def image_name
|
|
51
|
+
Starter.image_name
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# Run the command cmd within a fresh rake-compiler-dock container.
|
|
55
|
+
# The command is run directly, without the shell.
|
|
56
|
+
#
|
|
57
|
+
# If a block is given, upon command completion the block is called with an OK flag (true on a zero exit status) and a Process::Status object.
|
|
58
|
+
# Without a block a RuntimeError is raised when the command exits non-zero.
|
|
59
|
+
#
|
|
60
|
+
# * Option +:verbose+ can be set to enable printing of the command line.
|
|
61
|
+
# If not set, rake's verbose flag is used.
|
|
62
|
+
# * Option +:check_docker+ can be set to false to disable the docker check.
|
|
63
|
+
# * Option +:sigfw+ can be set to false to not stop the container on Ctrl-C.
|
|
64
|
+
# * Option +:runas+ can be set to false to execute the command as user root.
|
|
65
|
+
# * Option +:options+ can be an Array of additional options to the 'docker run' command.
|
|
66
|
+
# * Option +:username+ can be used to overwrite the user name in the container
|
|
67
|
+
# * Option +:groupname+ can be used to overwrite the group name in the container
|
|
68
|
+
#
|
|
69
|
+
# Examples:
|
|
70
|
+
#
|
|
71
|
+
# RakeCompilerDock.exec 'bash', '-c', 'echo $RUBY_CC_VERSION'
|
|
72
|
+
def exec(*args, &block)
|
|
73
|
+
Starter.exec(*args, &block)
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
# Retrieve the cross-rubies that are available in the docker image. This can be used to construct
|
|
77
|
+
# a custom `RUBY_CC_VERSION` string that is valid.
|
|
78
|
+
#
|
|
79
|
+
# Returns a Hash<minor_version => corresponding_patch_version>
|
|
80
|
+
#
|
|
81
|
+
# For example:
|
|
82
|
+
#
|
|
83
|
+
# RakeCompilerDock.cross_rubies
|
|
84
|
+
# # => {
|
|
85
|
+
# # "3.4" => "3.4.9",
|
|
86
|
+
# # "3.3" => "3.3.11",
|
|
87
|
+
# # "3.2" => "3.2.11",
|
|
88
|
+
# # "3.1" => "3.1.7",
|
|
89
|
+
# # "3.0" => "3.0.7",
|
|
90
|
+
# # }
|
|
91
|
+
#
|
|
92
|
+
def cross_rubies
|
|
93
|
+
{
|
|
94
|
+
"4.0" => "4.0.2",
|
|
95
|
+
"3.4" => "3.4.9",
|
|
96
|
+
"3.3" => "3.3.11",
|
|
97
|
+
"3.2" => "3.2.11",
|
|
98
|
+
"3.1" => "3.1.7",
|
|
99
|
+
"3.0" => "3.0.7",
|
|
100
|
+
}
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
# Returns a valid RUBY_CC_VERSION string for the given requirements,
|
|
104
|
+
# where each `requirement` may be:
|
|
105
|
+
#
|
|
106
|
+
# - a String that matches the minor version exactly
|
|
107
|
+
# - a String that can be used as a Gem::Requirement constructor argument
|
|
108
|
+
# - a Gem::Requirement object
|
|
109
|
+
#
|
|
110
|
+
# Note that the returned string will contain versions sorted in descending order.
|
|
111
|
+
#
|
|
112
|
+
# For example:
|
|
113
|
+
# RakeCompilerDock.ruby_cc_version("3.0", "3.4")
|
|
114
|
+
# # => "3.4.9:3.0.7"
|
|
115
|
+
#
|
|
116
|
+
# RakeCompilerDock.ruby_cc_version("~> 3.2")
|
|
117
|
+
# # => "3.4.9:3.3.11:3.2.11"
|
|
118
|
+
#
|
|
119
|
+
# RakeCompilerDock.ruby_cc_version(Gem::Requirement.new("~> 3.2"))
|
|
120
|
+
# # => "3.4.9:3.3.11:3.2.11"
|
|
121
|
+
#
|
|
122
|
+
def ruby_cc_version(*requirements)
|
|
123
|
+
cross = cross_rubies
|
|
124
|
+
output = []
|
|
125
|
+
|
|
126
|
+
if requirements.empty?
|
|
127
|
+
output += cross.values
|
|
128
|
+
else
|
|
129
|
+
requirements.each do |requirement|
|
|
130
|
+
if cross[requirement]
|
|
131
|
+
output << cross[requirement]
|
|
132
|
+
else
|
|
133
|
+
requirement = Gem::Requirement.new(requirement) unless requirement.is_a?(Gem::Requirement)
|
|
134
|
+
versions = cross.values.find_all { |v| requirement.satisfied_by?(Gem::Version.new(v)) }
|
|
135
|
+
raise("No matching ruby version for requirement: #{requirement.inspect}") if versions.empty?
|
|
136
|
+
output += versions
|
|
137
|
+
end
|
|
138
|
+
end
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
output.uniq.sort.reverse.join(":")
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
# Set the environment variable `RUBY_CC_VERSION` to the value returned by `ruby_cc_version`,
|
|
145
|
+
# for the given requirements.
|
|
146
|
+
def set_ruby_cc_version(*requirements)
|
|
147
|
+
ENV["RUBY_CC_VERSION"] = ruby_cc_version(*requirements)
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
module_function :exec, :sh, :image_name, :cross_rubies, :ruby_cc_version, :set_ruby_cc_version
|
|
151
|
+
end
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
FROM ubuntu:20.04
|
|
2
|
+
|
|
3
|
+
ARG DEBIAN_FRONTEND=noninteractive
|
|
4
|
+
|
|
5
|
+
RUN set -ex \
|
|
6
|
+
&& sed -i -- 's/# deb-src/deb-src/g' /etc/apt/sources.list \
|
|
7
|
+
&& apt-get update \
|
|
8
|
+
&& apt-get install -y --no-install-recommends \
|
|
9
|
+
build-essential \
|
|
10
|
+
cdbs \
|
|
11
|
+
devscripts \
|
|
12
|
+
equivs \
|
|
13
|
+
fakeroot \
|
|
14
|
+
pkg-config \
|
|
15
|
+
&& apt-get clean \
|
|
16
|
+
&& rm -rf /tmp/* /var/tmp/*
|
|
17
|
+
|
|
18
|
+
WORKDIR /build
|
|
19
|
+
|
|
20
|
+
# Download mingw sources
|
|
21
|
+
RUN apt-get source mingw-w64-common && \
|
|
22
|
+
cd mingw-w64-* && \
|
|
23
|
+
mk-build-deps -ir -t "apt-get -o Debug::pkgProblemResolver=yes -y --no-install-recommends"
|
|
24
|
+
|
|
25
|
+
# Patch build for UCRT and build UCRT enabled deb-packages
|
|
26
|
+
ADD mingw-w64-*.patch ./
|
|
27
|
+
RUN cd mingw-w64-* && \
|
|
28
|
+
cat debian/rules && \
|
|
29
|
+
ls ../mingw-w64-*.patch | xargs -n1 patch --verbose -p1 -i && \
|
|
30
|
+
dpkg-buildpackage -b && \
|
|
31
|
+
rm -rf ../*.ddeb ../*i686* `pwd`
|
|
32
|
+
|
|
33
|
+
# Install UCRT enabled deb-packages
|
|
34
|
+
RUN dpkg -i mingw-w64-common_7.0.0-2_all.deb \
|
|
35
|
+
mingw-w64-tools_7.0.0-2_*.deb \
|
|
36
|
+
mingw-w64-x86-64-dev_7.0.0-2_all.deb
|
|
37
|
+
|
|
38
|
+
# Download gcc-binutils sources for mingw
|
|
39
|
+
RUN apt-get source binutils-mingw-w64 && \
|
|
40
|
+
cd binutils-mingw-w64-* && \
|
|
41
|
+
mk-build-deps -ir -t "apt-get -o Debug::pkgProblemResolver=yes -y --no-install-recommends"
|
|
42
|
+
|
|
43
|
+
# Build gcc-binutils based on UCRT headers and crt
|
|
44
|
+
ADD binutils-mingw-w64-*.patch ./
|
|
45
|
+
RUN cd binutils-mingw-w64-* && \
|
|
46
|
+
ls ../binutils-mingw-w64-*.patch | xargs -n1 patch --verbose -p1 -i && \
|
|
47
|
+
dpkg-buildpackage -b --jobs=auto && \
|
|
48
|
+
rm -rf ../*.ddeb ../*i686* `pwd`
|
|
49
|
+
|
|
50
|
+
# Download gcc sources for mingw
|
|
51
|
+
RUN apt-get source gcc-mingw-w64 && \
|
|
52
|
+
cd gcc-mingw-w64-* && \
|
|
53
|
+
mk-build-deps -ir -t "apt-get -o Debug::pkgProblemResolver=yes -y --no-install-recommends"
|
|
54
|
+
|
|
55
|
+
# Add version based alias
|
|
56
|
+
RUN ln -s `which autoconf` `which autoconf`2.69 && \
|
|
57
|
+
ln -s `which autom4te` `which autom4te`2.69
|
|
58
|
+
|
|
59
|
+
# Build gcc (only C and C++) based on UCRT headers and crt
|
|
60
|
+
ADD gcc-mingw-w64-*.patch ./
|
|
61
|
+
RUN cd gcc-mingw-w64-* && \
|
|
62
|
+
ls ../gcc-mingw-w64-*.patch | xargs -n1 patch --verbose -p1 -i && \
|
|
63
|
+
dpkg-buildpackage -b --jobs=auto && \
|
|
64
|
+
rm -rf ../*.ddeb ../*i686* `pwd`
|
|
65
|
+
|
|
66
|
+
RUN ls -l *.deb
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
Docker image with compilers for ruby platform x64-mingw-ucrt
|
|
2
|
+
------------------
|
|
3
|
+
|
|
4
|
+
This Dockerfile builds compilers for Windows UCRT target.
|
|
5
|
+
It takes the mingw compiler provided by Debian/Ubuntu and configures and compiles them for UCRT.
|
|
6
|
+
Outputs are *.deb files of binutils, gcc and g++.
|
|
7
|
+
Rake-compiler-dock reads them from this image as part of its build process for the x64-mingw-ucrt platform.
|
|
8
|
+
|
|
9
|
+
The image is provided for arm64 and amd64 architectures.
|
|
10
|
+
They are built by the following command:
|
|
11
|
+
|
|
12
|
+
```sh
|
|
13
|
+
docker buildx build . -t larskanis/mingw64-ucrt:20.04 --platform linux/arm64,linux/amd64 --push
|
|
14
|
+
```
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
diff --git a/debian/rules b/debian/rules
|
|
2
|
+
index 4401493..62c8fe4 100755
|
|
3
|
+
--- a/debian/rules
|
|
4
|
+
+++ b/debian/rules
|
|
5
|
+
@@ -91,7 +91,7 @@ override_dh_auto_test-arch:
|
|
6
|
+
unset CFLAGS CPPFLAGS LDFLAGS; \
|
|
7
|
+
env > $(build_dir)/env; \
|
|
8
|
+
for target in $(targets); do \
|
|
9
|
+
- dh_auto_test -B$(build_dir)/$$target; \
|
|
10
|
+
+ dh_auto_test -B$(build_dir)/$$target || true; \
|
|
11
|
+
done
|
|
12
|
+
|
|
13
|
+
override_dh_auto_install-arch:
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
diff --git a/debian/rules b/debian/rules
|
|
2
|
+
index 9e7e40c..fa9a8a2 100755
|
|
3
|
+
--- a/debian/rules
|
|
4
|
+
+++ b/debian/rules
|
|
5
|
+
@@ -58,7 +58,7 @@ ifneq ($(filter stage1,$(DEB_BUILD_PROFILES)),)
|
|
6
|
+
INSTALL_TARGET := install-gcc
|
|
7
|
+
else
|
|
8
|
+
# Build the full GCC.
|
|
9
|
+
- languages := c,c++,fortran,objc,obj-c++,ada
|
|
10
|
+
+ languages := c,c++
|
|
11
|
+
BUILD_TARGET :=
|
|
12
|
+
INSTALL_TARGET := install install-lto-plugin
|
|
13
|
+
endif
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
diff --git a/debian/rules b/debian/rules
|
|
2
|
+
index 9fb970c..5473839 100755
|
|
3
|
+
--- a/debian/rules
|
|
4
|
+
+++ b/debian/rules
|
|
5
|
+
@@ -94,7 +94,7 @@ build-arch-stamp: $(patsubst %,$(host)~$(host)~tools-%-install-stamp,$(HOST_TOOL
|
|
6
|
+
%~headers-configure-stamp: autoreconf-stamp
|
|
7
|
+
mkdir -p $(call buildfolder,$*~headers) && \
|
|
8
|
+
cd $(call buildfolder,$*~headers) && \
|
|
9
|
+
- $(call sourcefolder,$*~headers)/configure --prefix=/usr/$(call ruletarget,$*~headers) --host=$(call rulehost,$*~headers) --enable-sdk=all --enable-secure-api
|
|
10
|
+
+ $(call sourcefolder,$*~headers)/configure --prefix=/usr/$(call ruletarget,$*~headers) --host=$(call rulehost,$*~headers) --enable-sdk=all --with-default-msvcrt=ucrt
|
|
11
|
+
touch $*-headers-configure-stamp
|
|
12
|
+
|
|
13
|
+
# Override CRT configuration to avoid multilib builds
|
|
14
|
+
@@ -108,7 +108,7 @@ target64crt := $(target64)~$(target64)~crt
|
|
15
|
+
$(target64crt)-configure-stamp: $(target64)~$(target64)~headers-install-stamp autoreconf-stamp
|
|
16
|
+
mkdir -p $(call buildfolder,$(target64crt)) && \
|
|
17
|
+
cd $(call buildfolder,$(target64crt)) && \
|
|
18
|
+
- $(call sourcefolder,$(target64crt))/configure --prefix=/usr/$(call ruletarget,$(target64crt)) --host=$(call rulehost,$(target64crt)) --target=$(call ruletarget,$(target64crt)) --disable-lib32 --enable-lib64 CPPFLAGS="$(CPPFLAGS) -I$(top_dir)/debian/tmp/usr/$(call ruletarget,$(target64crt))/include"
|
|
19
|
+
+ $(call sourcefolder,$(target64crt))/configure --prefix=/usr/$(call ruletarget,$(target64crt)) --host=$(call rulehost,$(target64crt)) --target=$(call ruletarget,$(target64crt)) --disable-lib32 --enable-lib64 --with-default-msvcrt=ucrt CPPFLAGS="$(CPPFLAGS) -I$(top_dir)/debian/tmp/usr/$(call ruletarget,$(target64crt))/include"
|
|
20
|
+
touch $@
|
|
21
|
+
|
|
22
|
+
build-indep-stamp: $(foreach target,$(targets),$(patsubst %,$(target)~$(target)~%-install-stamp,$(TARGET_PROJECTS))) $(patsubst %,$(target32)~$(target32)~%-install-stamp,$(TARGET32_PROJECTS))
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
|
+
require 'rake_compiler_dock/version'
|
|
5
|
+
|
|
6
|
+
Gem::Specification.new do |spec|
|
|
7
|
+
spec.name = "rake-compiler-dock"
|
|
8
|
+
spec.version = RakeCompilerDock::VERSION
|
|
9
|
+
spec.authors = ["Lars Kanis"]
|
|
10
|
+
spec.email = ["lars@greiz-reinsdorf.de"]
|
|
11
|
+
spec.summary = %q{Easy to use and reliable cross compiler environment for building Windows and Linux binary gems.}
|
|
12
|
+
spec.description = %q{Easy to use and reliable cross compiler environment for building Windows and Linux binary gems.
|
|
13
|
+
Use rake-compiler-dock to enter an interactive shell session or add a task to your Rakefile to automate your cross build.}
|
|
14
|
+
spec.homepage = "https://github.com/rake-compiler/rake-compiler-dock"
|
|
15
|
+
spec.license = "MIT"
|
|
16
|
+
# We do not set a ruby version in the gemspec, to allow addition to the Gemfile of gems that still support ruby-1.8.
|
|
17
|
+
# However we do the version check at runtime.
|
|
18
|
+
# spec.required_ruby_version = '>= 1.9.2'
|
|
19
|
+
|
|
20
|
+
spec.files = begin
|
|
21
|
+
`git ls-files -z`.split("\x0")
|
|
22
|
+
rescue StandardError => e
|
|
23
|
+
warn "WARNING: Could not discover files for gemspec: #{e}"
|
|
24
|
+
[]
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
|
28
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
|
29
|
+
spec.require_paths = ["lib"]
|
|
30
|
+
|
|
31
|
+
spec.add_development_dependency "bundler", ">= 1.7", "< 3.0"
|
|
32
|
+
spec.add_development_dependency "rake", ">= 12"
|
|
33
|
+
spec.add_development_dependency "test-unit", "~> 3.0"
|
|
34
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
ARG from_image
|
|
2
|
+
FROM ${from_image}
|
|
3
|
+
|
|
4
|
+
RUN uname -a
|
|
5
|
+
RUN apk add ruby ruby-rake git
|
|
6
|
+
|
|
7
|
+
RUN ruby --version
|
|
8
|
+
RUN gem env
|
|
9
|
+
RUN gem inst bundler
|
|
10
|
+
|
|
11
|
+
WORKDIR /build
|
|
12
|
+
|
|
13
|
+
CMD ruby -e "puts Gem::Platform.local.to_s" && \
|
|
14
|
+
gem install --local *.gem --verbose --no-document && \
|
|
15
|
+
cd test/rcd_test/ && \
|
|
16
|
+
bundle install && \
|
|
17
|
+
rake test
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
ARG from_image
|
|
2
|
+
FROM ${from_image}
|
|
3
|
+
|
|
4
|
+
# To prevent installed tzdata deb package to show interactive dialog.
|
|
5
|
+
ENV DEBIAN_FRONTEND noninteractive
|
|
6
|
+
|
|
7
|
+
RUN uname -a
|
|
8
|
+
RUN apt-get update -qq && \
|
|
9
|
+
apt-get install -yq \
|
|
10
|
+
-o Dpkg::Options::='--force-confnew' \
|
|
11
|
+
ruby \
|
|
12
|
+
git
|
|
13
|
+
|
|
14
|
+
RUN ruby --version
|
|
15
|
+
RUN gem env
|
|
16
|
+
RUN gem inst bundler
|
|
17
|
+
|
|
18
|
+
WORKDIR /build
|
|
19
|
+
|
|
20
|
+
CMD ruby -e "puts Gem::Platform.local.to_s" && \
|
|
21
|
+
gem install --local *.gem --verbose --no-document && \
|
|
22
|
+
cd test/rcd_test/ && \
|
|
23
|
+
bundle install && \
|
|
24
|
+
rake test
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
source "https://rubygems.org"
|
|
4
|
+
|
|
5
|
+
# No rcd_test gem, since "bundle package" fails on bundler-2.7+, if the extension isn't built
|
|
6
|
+
# gemspec
|
|
7
|
+
|
|
8
|
+
gem "rake", "~> 13.0"
|
|
9
|
+
gem "rake-compiler"
|
|
10
|
+
gem "rake-compiler-dock", path: "../.."
|
|
11
|
+
gem "minitest", "~> 5.0"
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
require "bundler/gem_tasks"
|
|
2
|
+
require "rubygems/package_task"
|
|
3
|
+
require "rake/testtask"
|
|
4
|
+
|
|
5
|
+
rcd_test_spec = Bundler.load_gemspec("rcd_test.gemspec")
|
|
6
|
+
|
|
7
|
+
if RUBY_ENGINE == "jruby"
|
|
8
|
+
require "rake/javaextensiontask"
|
|
9
|
+
|
|
10
|
+
Rake::JavaExtensionTask.new("rcd_test_ext", rcd_test_spec) do |ext|
|
|
11
|
+
ext.ext_dir = 'ext/java'
|
|
12
|
+
ext.lib_dir = 'lib/rcd_test'
|
|
13
|
+
end
|
|
14
|
+
else
|
|
15
|
+
require "rake/extensiontask"
|
|
16
|
+
|
|
17
|
+
exttask = Rake::ExtensionTask.new('rcd_test_ext', rcd_test_spec) do |ext|
|
|
18
|
+
ext.ext_dir = 'ext/mri'
|
|
19
|
+
ext.lib_dir = 'lib/rcd_test'
|
|
20
|
+
ext.cross_compile = true
|
|
21
|
+
ext.cross_platform = %w[
|
|
22
|
+
aarch64-linux
|
|
23
|
+
aarch64-linux-gnu
|
|
24
|
+
aarch64-linux-musl
|
|
25
|
+
aarch64-mingw-ucrt
|
|
26
|
+
arm-linux
|
|
27
|
+
arm-linux-gnu
|
|
28
|
+
arm-linux-musl
|
|
29
|
+
arm64-darwin
|
|
30
|
+
x64-mingw-ucrt
|
|
31
|
+
x64-mingw32
|
|
32
|
+
x86-linux
|
|
33
|
+
x86-linux-gnu
|
|
34
|
+
x86-linux-musl
|
|
35
|
+
x86-mingw32
|
|
36
|
+
x86_64-darwin
|
|
37
|
+
x86_64-linux
|
|
38
|
+
x86_64-linux-gnu
|
|
39
|
+
x86_64-linux-musl
|
|
40
|
+
]
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
namespace "gem" do
|
|
45
|
+
if exttask
|
|
46
|
+
task 'prepare' do
|
|
47
|
+
require 'rake_compiler_dock'
|
|
48
|
+
require 'io/console'
|
|
49
|
+
sh "bundle package"
|
|
50
|
+
sh "mkdir -p tmp/gem"
|
|
51
|
+
sh "cp ~/.gem/gem-*.pem tmp/gem/ || true"
|
|
52
|
+
unless ENV['CI']
|
|
53
|
+
ENV["GEM_PRIVATE_KEY_PASSPHRASE"] = STDIN.getpass("Enter passphrase of gem signature key: ")
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
exttask.cross_platform.each do |plat|
|
|
58
|
+
desc "Build all native binary gems"
|
|
59
|
+
multitask 'native' => plat
|
|
60
|
+
|
|
61
|
+
desc "Build the native gem for #{plat}"
|
|
62
|
+
task plat => 'prepare' do
|
|
63
|
+
config = "-- #{ENV['RCD_TEST_CONFIG']}"
|
|
64
|
+
# Set mountdir of the directory where .git resides,
|
|
65
|
+
# - so that git ls-files in the gemspec works
|
|
66
|
+
# - and to bundle the rake-compiler-dock under test
|
|
67
|
+
RakeCompilerDock.sh <<-EOT, platform: plat, mountdir: Dir.pwd + "/../..", verbose: true
|
|
68
|
+
(cp tmp/gem/gem-*.pem ~/.gem/ || true) &&
|
|
69
|
+
bundle install --local &&
|
|
70
|
+
rake native:#{plat} pkg/#{exttask.gem_spec.full_name}-#{plat}.gem "MAKE=make V=1" #{config}
|
|
71
|
+
EOT
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
desc "Build a jruby gem"
|
|
77
|
+
task "jruby" do
|
|
78
|
+
require 'rake_compiler_dock'
|
|
79
|
+
sh "bundle package"
|
|
80
|
+
RakeCompilerDock.sh <<-EOT, rubyvm: "jruby", platform: "jruby", mountdir: Dir.pwd + "/../..", verbose: true
|
|
81
|
+
mvn archetype:generate -DartifactId=test -DarchetypeVersion=1.4 -DinteractiveMode=false -DgroupId=test -Dpackage=test &&
|
|
82
|
+
bundle install --local &&
|
|
83
|
+
bundle exec rake java gem
|
|
84
|
+
EOT
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
Rake::TestTask.new(:test) do |t|
|
|
89
|
+
t.libs << "test"
|
|
90
|
+
t.libs << "lib"
|
|
91
|
+
t.test_files = FileList["test/**/test_*.rb"]
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
task default: [:clobber, :compile, :test]
|
|
95
|
+
task gem: :build
|
|
96
|
+
|
|
97
|
+
CLEAN.add("{ext,lib}/**/*.{o,so}", "pkg", "tmp")
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
package rcd_test;
|
|
2
|
+
|
|
3
|
+
import org.jruby.Ruby;
|
|
4
|
+
import org.jruby.RubyClass;
|
|
5
|
+
import org.jruby.RubyModule;
|
|
6
|
+
import org.jruby.runtime.ObjectAllocator;
|
|
7
|
+
import org.jruby.runtime.builtin.IRubyObject;
|
|
8
|
+
import org.jruby.runtime.load.BasicLibraryService;
|
|
9
|
+
|
|
10
|
+
import java.io.IOException;
|
|
11
|
+
|
|
12
|
+
public class RcdTestExtService implements BasicLibraryService {
|
|
13
|
+
@Override
|
|
14
|
+
public boolean basicLoad(final Ruby ruby) throws IOException {
|
|
15
|
+
RubyModule rb_mRcdTest = ruby.defineModule("RcdTest");
|
|
16
|
+
rb_mRcdTest.defineAnnotatedMethods(RubyRcdTest.class);
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
}
|
data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/ext/java/RubyRcdTest.java
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
package rcd_test;
|
|
2
|
+
|
|
3
|
+
import org.jruby.Ruby;
|
|
4
|
+
import org.jruby.anno.JRubyMethod;
|
|
5
|
+
import org.jruby.runtime.builtin.IRubyObject;
|
|
6
|
+
import org.jruby.anno.JRubyModule;
|
|
7
|
+
import org.jruby.runtime.ThreadContext;
|
|
8
|
+
|
|
9
|
+
@JRubyModule(name = "RcdTest")
|
|
10
|
+
public class RubyRcdTest {
|
|
11
|
+
@JRubyMethod(name = "do_something", module = true, meta = true)
|
|
12
|
+
public static IRubyObject buildSelfString(ThreadContext context, IRubyObject recv) {
|
|
13
|
+
Ruby runtime = context.getRuntime();
|
|
14
|
+
return runtime.newString("something has been done");
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
if RUBY_ENGINE == "jruby"
|
|
2
|
+
File.open("Makefile", "w") do |mf|
|
|
3
|
+
mf.puts "# Dummy makefile for JRuby"
|
|
4
|
+
mf.puts "all install::\n"
|
|
5
|
+
end
|
|
6
|
+
else
|
|
7
|
+
require "mkmf"
|
|
8
|
+
|
|
9
|
+
include RbConfig
|
|
10
|
+
|
|
11
|
+
puts "-"*70
|
|
12
|
+
puts "CONFIG['arch']: #{CONFIG['arch'].inspect}"
|
|
13
|
+
puts "CONFIG['sitearch']: #{CONFIG['sitearch'].inspect}"
|
|
14
|
+
puts "CONFIG['host']: #{CONFIG['host'].inspect}"
|
|
15
|
+
puts "CONFIG['RUBY_SO_NAME']: #{CONFIG['RUBY_SO_NAME'].inspect}"
|
|
16
|
+
puts "RUBY_PLATFORM: #{RUBY_PLATFORM.inspect}"
|
|
17
|
+
puts "Gem::Platform.local.to_s: #{Gem::Platform.local.to_s.inspect}"
|
|
18
|
+
puts "cc --version: #{ %x[#{CONFIG['CC']} --version].lines.first}"
|
|
19
|
+
puts "-"*70
|
|
20
|
+
|
|
21
|
+
$CFLAGS << " -Wall -Werror"
|
|
22
|
+
|
|
23
|
+
have_func('rb_thread_call_without_gvl', 'ruby/thread.h') ||
|
|
24
|
+
raise("rb_thread_call_without_gvl() not found")
|
|
25
|
+
|
|
26
|
+
if arg_config("--link-static", false)
|
|
27
|
+
# https://github.com/rake-compiler/rake-compiler-dock/issues/69
|
|
28
|
+
puts "Linking with '-static' flag"
|
|
29
|
+
$LDFLAGS << ' -static'
|
|
30
|
+
else
|
|
31
|
+
if RbConfig::CONFIG["target_os"].include?("darwin")
|
|
32
|
+
## In ruby 3.2, symbol resolution changed on Darwin, to introduce the `-bundle_loader` flag.
|
|
33
|
+
##
|
|
34
|
+
## See https://github.com/rake-compiler/rake-compiler-dock/issues/87 for a lot of context, but
|
|
35
|
+
## I'll try to summarize here.
|
|
36
|
+
##
|
|
37
|
+
## > -bundle_loader executable
|
|
38
|
+
## > This specifies the executable that will be loading the bundle output file being linked.
|
|
39
|
+
## > Undefined symbols from the bundle are checked against the specified executable like it
|
|
40
|
+
## > was one of the dynamic libraries the bundle was linked with.
|
|
41
|
+
##
|
|
42
|
+
## There are good reasons to do this, including faster initialiation/loading as the Darwin
|
|
43
|
+
## toolchain gets improved over time.
|
|
44
|
+
##
|
|
45
|
+
## Unfortunately, this flag prevents us from building a shared object that works with both a
|
|
46
|
+
## Ruby compiled with `--enable-shared` and one compiled with `--disabled-shared`. The result
|
|
47
|
+
## is usually an "Symbol not found" error about `_rb_cObject`, or a "dyld: missing symbol
|
|
48
|
+
## called" error.
|
|
49
|
+
##
|
|
50
|
+
## There are two workarounds that I know of (there may be others I don't know of), and
|
|
51
|
+
## they are ...
|
|
52
|
+
|
|
53
|
+
## ----------------------------------------
|
|
54
|
+
## SOLUTION 1, the `-flat_namespace` flag
|
|
55
|
+
##
|
|
56
|
+
## > Two-level namespace
|
|
57
|
+
## > By default all references resolved to a dynamic library record the library to which
|
|
58
|
+
## > they were resolved. At runtime, dyld uses that information to directly resolve symbols.
|
|
59
|
+
## > The alternative is to use the -flat_namespace option. With flat namespace, the library
|
|
60
|
+
## > is not recorded. At runtime, dyld will search each dynamic library in load order when
|
|
61
|
+
## > resolving symbols. This is slower, but more like how other operating systems resolve
|
|
62
|
+
## > symbols.
|
|
63
|
+
##
|
|
64
|
+
#
|
|
65
|
+
# puts "Adding '-flat_namespace'"
|
|
66
|
+
# $LDFLAGS << ' -flat_namespace'
|
|
67
|
+
#
|
|
68
|
+
## This solution unfortunately introduces new behavior that any symbols statically linked into
|
|
69
|
+
## the shared object (e.g., libxml2 in nokogiri.bundle) may not be resolved locally from the
|
|
70
|
+
## shared object, but instead resolved from a shared object loaded in the main process.
|
|
71
|
+
##
|
|
72
|
+
## This solution might be good for you if:
|
|
73
|
+
## - you don't statically link things into your bundle,
|
|
74
|
+
## - or you don't export those symbols,
|
|
75
|
+
## - or you can avoid exporting those symbols (e.g., by using `-load_hidden`, or
|
|
76
|
+
## `-exported_symbols_list` or some other mechanism)
|
|
77
|
+
##
|
|
78
|
+
|
|
79
|
+
## ----------------------------------------
|
|
80
|
+
## BUT ... if that is a problem, try SOLUTION 2, remove the `-bundle-loader` flag
|
|
81
|
+
##
|
|
82
|
+
## This returns us to the symbol resolution we had in previous Rubies. It feels gross but may
|
|
83
|
+
## be a workaround for gem maintainers until we all figure out a better way to deal with this.
|
|
84
|
+
#
|
|
85
|
+
# extdldflags = RbConfig::MAKEFILE_CONFIG["EXTDLDFLAGS"].split
|
|
86
|
+
# if found = extdldflags.index("-bundle_loader")
|
|
87
|
+
# removed_1 = extdldflags.delete_at(found) # flag
|
|
88
|
+
# removed_2 = extdldflags.delete_at(found) # and its argument
|
|
89
|
+
# puts "Removing '#{removed_1} #{removed_2}' from EXTDLDFLAGS"
|
|
90
|
+
# end
|
|
91
|
+
# RbConfig::MAKEFILE_CONFIG["EXTDLDFLAGS"] = extdldflags.join(" ")
|
|
92
|
+
#
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
create_makefile("rcd_test/rcd_test_ext")
|
|
97
|
+
|
|
98
|
+
# exercise the strip command - this approach borrowed from grpc
|
|
99
|
+
strip_tool = RbConfig::CONFIG['STRIP']
|
|
100
|
+
strip_tool += ' -x' if RUBY_PLATFORM =~ /darwin/
|
|
101
|
+
File.open('Makefile.new', 'w') do |o|
|
|
102
|
+
o.puts 'hijack: all strip'
|
|
103
|
+
o.puts
|
|
104
|
+
o.write(File.read('Makefile'))
|
|
105
|
+
o.puts
|
|
106
|
+
o.puts 'strip: $(DLLIB)'
|
|
107
|
+
o.puts "\t$(ECHO) Stripping $(DLLIB)"
|
|
108
|
+
o.puts "\t$(Q) #{strip_tool} $(DLLIB)"
|
|
109
|
+
end
|
|
110
|
+
File.rename('Makefile.new', 'Makefile')
|
|
111
|
+
end
|