summaryrefslogtreecommitdiff
path: root/ext
AgeCommit message (Collapse)Author
2022-08-09[ruby/psych] Raise specific error when an anchor isn't definedAlexander Momchilov
https://github.com/ruby/psych/commit/98fbd5247a
2022-08-09[ruby/psych] Raise specific error when aliases are not enabledAlexander Momchilov
https://github.com/ruby/psych/commit/0c11ddcf46
2022-08-08[ruby/date] bump up to 3.2.3Nobuyoshi Nakada
https://github.com/ruby/date/commit/dff37b3dd1
2022-08-08[ruby/date] Fix Time#to_datetime before calendar reformNobuyoshi Nakada
Time is always in the proleptic Gregorian calendar. Also DateTime#to_time should convert to the Gregorian calendar first, before extracting its components. https://bugs.ruby-lang.org/issues/18946#change-98527 https://github.com/ruby/date/commit/b2aee75248
2022-08-07[DOC] New doc about Julian/Gregorian (#70)Burdette Lamar
2022-08-07Create temporary file exclusively and cleanNobuyoshi Nakada
2022-08-04Resolve abi symbol references from miniruby to avoid circular depsYuta Saito
Adding `ruby` to `PREP` causes the following circular dependencies because `PREP` is used as a prerequisite by some targets required to build `ruby` target itself. ``` make: Circular .rbconfig.time <- ruby dependency dropped. make: Circular builtin_binary.inc <- ruby dependency dropped. make: Circular ext/extinit.c <- ruby dependency dropped. make: Circular ruby <- ruby dependency dropped. ``` Adding a new Make variable like `EXTPREP` only for exts may be also reasonable, but it would introduce another complexity into our build system. `-bundle_loader` doesn't care that link-time and run-time loader executables are different as long as bound symbols are provided, so it's ok to resolve from miniruby to simplify our build. Notes: Merged: https://github.com/ruby/ruby/pull/6193
2022-08-04Use $(bindir) for path to executable in mkmfAlan Wu
For the macOS -bundle_loader linker option, we need a path to the Ruby exectuable. $(RUBY) is not necessarily a path since it could be a command line invocation. That happens during build with runruby.rb and can happen post installation if the user passes the --ruby option to a extconf.rb. Use $(bindir) to locate the executable instead. Before installation, $(bindir) doesn't exist, so we need to be able to override $(BUILTRUBY) in such situations so test-spec and bundled extensions could build. Use a new mkmf global, $builtruby, to do this; set it in fake.rb and in extmk.rb. Our build system is quite complex... Notes: Merged: https://github.com/ruby/ruby/pull/6193
2022-08-04Link ext bundles with bundle loader option for newer ld64Yuta Saito
ld64 shipped with Xcode 14 emits a warning when using `-undefined dynamic_lookup`. ``` ld: warning: -undefined dynamic_lookup may not work with chained fixups ``` Actually, `-undefined dynamic_lookup` doesn't work when: 1. Link a *shared library* with the option 2. Link it with a program that uses the chained-fixup introduced from macOS 12 and iOS 15 because `-undefined dynamic_lookup` uses lazy-bindings and they won't be bound while dyld fixes-up by traversing chained-fixup info. However, we build exts as *bundles* and they are loaded only through `dlopen`, so it's safe to use `-undefined dynamic_lookup` in theory. So the warning produced by ld64 is false-positive, and it results failure of option checking in configuration. Therefore, it would be an option to ignore the warning during our configuration. On the other hand, `-undefined dynamic_lookup` is already deprecated on all darwin platforms except for macOS, so it's good time to get rid of the option. ld64 also provides `-bundle_loader <executable>` option, which allows to resolve symbols defined in the executable symtab while linking. It behaves almost the same with `-undefined dynamic_lookup`, but it makes the following changes: 1. Require that unresolved symbols among input objects must be defined in the executable. 2. Lazy symbol binding will lookup only the symtab of the bundle loader executable. (`-undefined dynamic_lookup` lookups all symtab as flat namespace) This patch adds `-bundle_loader $(RUBY)` when non-EXTSTATIC configuration by assuming ruby executable can be linked before building exts. See "New Features" subsection under "Linking" section for chained fixup https://developer.apple.com/documentation/xcode-release-notes/xcode-13-release-notes Notes: Merged: https://github.com/ruby/ruby/pull/6193
2022-08-03[ruby/bigdecimal] Updated to use the correct spec for muilti licenseThomas Winsnes
https://github.com/ruby/bigdecimal/commit/13165b29b8
2022-08-03Updated to use multiple licensesThomas Winsnes
Co-authored-by: Hiroshi SHIBATA <hsbt@ruby-lang.org>
2022-08-03[ruby/date] Enhanced RDoc (https://github.com/ruby/date/pull/69)Burdette Lamar
Treats: ::_strptime ::strptime Adds 'Related' entry to some methods' doc. https://github.com/ruby/date/commit/a6c2129273
2022-08-03[ruby/date] [DOC] Enhanced RDoc for parser methods ↵Burdette Lamar
(https://github.com/ruby/date/pull/68) Treats: ::_httpdate ::_iso8601 ::_jisx0301 ::_parse ::_rfc2822 ::_rfc3339 ::_xmlschema ::httpdate ::iso8601 ::jisx0301 ::parse ::rfc2822 ::rfc3339 ::xmlschema https://github.com/ruby/date/commit/24bdab600a
2022-08-01respect current frame of `rb_eval_string`Koichi Sasada
`self` is nearest Ruby method's `self`. If there is no ruby frame, use toplevel `self` (`main`). https://bugs.ruby-lang.org/issues/18780 Notes: Merged: https://github.com/ruby/ruby/pull/6199
2022-07-31[ruby/date] Enhanced RDoc (https://github.com/ruby/date/pull/67)Burdette Lamar
Treats: ::httpdate #to_date #to_time #to_datetime In behalf of ::httpdate, I've introduced section "Argument limit" that can be pointed to by various Date methods (similar to existing section "Argument start"). This will involve 8 already-enhanced methods plus 8 more not yet done. https://github.com/ruby/date/commit/00326ff99c
2022-07-30Revert "* expand tabs. [ci skip]"Nobuyoshi Nakada
This reverts commit 0d842fecb4f75ab3b1d4097ebdb8e88f51558041.
2022-07-30* expand tabs. [ci skip]git
Tabs were expanded because the file did not have any tab indentation in unedited lines. Please update your editor config, and use misc/expand_tabs.rb in the pre-commit hook.
2022-07-30[ruby/io-nonblock] Revert tab expansionNobuyoshi Nakada
2022-07-30Revert "* expand tabs. [ci skip]"Hiroshi SHIBATA
This reverts commit 8a65cf3b61c60e4cb886f59a73ff6db44364bfa9.
2022-07-30* expand tabs. [ci skip]git
Tabs were expanded because the file did not have any tab indentation in unedited lines. Please update your editor config, and use misc/expand_tabs.rb in the pre-commit hook.
2022-07-30[ruby/digest] Revert tab-expansion in external filesNobuyoshi Nakada
https://github.com/ruby/digest/commit/5ca2b5b91e
2022-07-30[ruby/date] [DOC] Enhanced RDoc (https://github.com/ruby/date/pull/66)Burdette Lamar
Treats: #=== #to_s #inspect #strftme #asctime #iso3601 #rfc3339 #rfc2822 #httpdate #jisx0301 https://github.com/ruby/date/commit/aed66fedf6
2022-07-29[flori/json] Stop including the parser source __LINE__ in exceptionsJean Boussier
It makes testing for JSON errors very tedious. You either have to use a Regexp or to regularly update all your assertions when JSON is upgraded. https://github.com/flori/json/commit/de9eb1d28e Notes: Merged: https://github.com/ruby/ruby/pull/6200
2022-07-29[ruby/date] [DOC] Enhanced RDoc for <=> (https://github.com/ruby/date/pull/65)Burdette Lamar
https://github.com/ruby/date/commit/0cdbaa92e9
2022-07-27[ruby/pathname] Fix `autoload` of `FileUtils`Nobuyoshi Nakada
Should not be `Pathname::FileUtils`. https://github.com/ruby/pathname/commit/d1eb366e73
2022-07-27Adjust styles [ci skip]Nobuyoshi Nakada
2022-07-27Manually sync with https://github.com/ruby/date/pull/64Hiroshi SHIBATA
2022-07-26Rename rb_ary_tmp_new to rb_ary_hidden_newPeter Zhu
rb_ary_tmp_new suggests that the array is temporary in some way, but that's not true, it just creates an array that's hidden and not on the transient heap. This commit renames it to rb_ary_hidden_new. Notes: Merged: https://github.com/ruby/ruby/pull/6180
2022-07-26Fix `rb_profile_frames` output includes dummy main thread frameIvo Anjo
The `rb_profile_frames` API did not skip the two dummy frames that each thread has at its beginning. This was unlike `backtrace_each` and `rb_ec_parcial_backtrace_object`, which do skip them. This does not seem to be a problem for non-main thread frames, because both `VM_FRAME_RUBYFRAME_P(cfp)` and `rb_vm_frame_method_entry(cfp)` are NULL for them. BUT, on the main thread `VM_FRAME_RUBYFRAME_P(cfp)` was true and thus the dummy thread was still included in the output of `rb_profile_frames`. I've now made `rb_profile_frames` skip this extra frame (like `backtrace_each` and friends), as well as add a test that asserts the size and contents of `rb_profile_frames`. Fixes [Bug #18907] (<https://bugs.ruby-lang.org/issues/18907>) Notes: Merged: https://github.com/ruby/ruby/pull/6114
2022-07-24Make extensions under `Gem.extension_api_version` directoryNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/6174
2022-07-22Adjust indents [ci skip]Nobuyoshi Nakada
2022-07-22Get rid of magic numbersNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/6166
2022-07-22Dump non-ASCII char as unsignedNobuyoshi Nakada
Non-ASCII code may be negative on platforms plain char is signed. Notes: Merged: https://github.com/ruby/ruby/pull/6166
2022-07-21Revert "objspace_dump.c: skip dumping method name if not pure ASCII"Jean byroot Boussier
This reverts commit 79406e3600862bbb6dcdd7c5ef8de1978e6f916c. Notes: Merged: https://github.com/ruby/ruby/pull/6165
2022-07-21objspace_dump.c: skip dumping method name if not pure ASCIIJean Boussier
Sidekiq has a method named `❨╯°□°❩╯︵┻━┻`which corrupts heap dumps. Normally we could just dump is as is since it's valid UTF-8 and need no escaping. But our code to escape control characters isn't UTF-8 aware so it's more complicated than it seems. Ultimately since the overwhelming majority of method names are pure ASCII, it's not a big loss to just skip it. Notes: Merged: https://github.com/ruby/ruby/pull/6161
2022-07-21Expand tabs [ci skip]Takashi Kokubun
[Misc #18891] Notes: Merged: https://github.com/ruby/ruby/pull/6094
2022-07-16Avoid to symlink under symlinkNobuyoshi Nakada
2022-07-16Move copying/linking extra files to Makefile so removed by `clean`Nobuyoshi Nakada
2022-07-15Ensure symlinks to bundled gem with exts have parent dirYuta Saito
When configuring with `--disable-rpath` and `--static-linked-ext` (e.g. building for WASI), `extmk.rb` doesn't build exts under bundled gems, and `.bundle/gems/#{gemname}-#{ver}` are not created due to no call of `extmake`. b2491783986084770f6f97552f27b868622730cf starts creating symlink at `.bundle/gems/#{gemname}-#{ver}/lib`, but the parent dir is not created, so configuration aginst debug and rbs gems were failed. Notes: Merged: https://github.com/ruby/ruby/pull/6136
2022-07-15[ruby/psych] Fix infinite loop bug after YAML_MEMORY_ERROR (psych issue #440)Karl Anderson
https://github.com/ruby/psych/commit/6c56700fb2
2022-07-14[ruby/bigdecimal] Remove checks for `struct RRational` and `struct RComplex`Nobuyoshi Nakada
These are used to see only if `RRATIONAL` and `RCOMPLEX` are available, however, these two are macros and can be checked with `#ifdef` directly. https://github.com/ruby/bigdecimal/commit/175bbacd43
2022-07-14Install gems `lib` directory to build pathNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/6130
2022-07-14Make dependency-free gemspec filesNobuyoshi Nakada
The default gems have not been installed yet in the build directory, bundled gems depending on them can not work. As those dependencies should be usable there even without rubygems, make temporary gemspec files without the dependencies, and use them in the build directory. Notes: Merged: https://github.com/ruby/ruby/pull/6130
2022-07-13Move timestamps directory for bundled gemsNobuyoshi Nakada
2022-07-12[ruby/date] [DOC] Enhanced RDoc (https://github.com/ruby/date/pull/63)Burdette Lamar
Treats: #next #<< #>> #next_month #prev_month #next_year #prev_year #step #upto #downto https://github.com/ruby/date/commit/4246441a35
2022-07-12[ruby/date] [DOC] Enhanced RDoc (https://github.com/ruby/date/pull/62)Burdette Lamar
Minor edits to 11 methods' documentation. https://github.com/ruby/date/commit/00bb7f6648
2022-07-10[ruby/date] Enhanced RDoc (https://github.com/ruby/date/pull/61)Burdette Lamar
Omit private aliases from Rdoc. https://github.com/ruby/date/commit/48f9180663
2022-07-09[ruby/date] [DOC] Enhanced RDoc (https://github.com/ruby/date/pull/59)Burdette Lamar
Minor changes (mostly doc-guide compliance) to 18 or so of simpler methods (getters). https://github.com/ruby/date/commit/00e37ba2b4
2022-07-08[ruby/openssl] Fix formatting in docsPeter Zhu
The + tag can only be used for single words. For multiple words the <tt> tag has to be used. https://github.com/ruby/openssl/commit/cf2f019c3e
2022-07-08[ruby/openssl] Let OpenSSL choose the digest if digest for ↵Jarek Prokop
Openssl::OCSP::BasicResponse#sign is nil. https://github.com/ruby/openssl/commit/27efcd7e1c