ruby/test
Jean Boussier 57e3fc32ea Move Time#xmlschema in core and optimize it
[Feature #20707]

Converting Time into RFC3339 / ISO8601 representation is an significant
hotspot for applications that serialize data in JSON, XML or other formats.

By moving it into core we can optimize it much further than what `strftime` will
allow.

```
compare-ruby: ruby 3.4.0dev (2024-08-29T13:11:40Z master 6b08a50a62) +YJIT [arm64-darwin23]
built-ruby: ruby 3.4.0dev (2024-08-30T13:17:32Z native-xmlschema 34041ff71f) +YJIT [arm64-darwin23]
warming up......

|                        |compare-ruby|built-ruby|
|:-----------------------|-----------:|---------:|
|time.xmlschema          |      1.087M|    5.190M|
|                        |           -|     4.78x|
|utc_time.xmlschema      |      1.464M|    6.848M|
|                        |           -|     4.68x|
|time.xmlschema(6)       |    859.960k|    4.646M|
|                        |           -|     5.40x|
|utc_time.xmlschema(6)   |      1.080M|    5.917M|
|                        |           -|     5.48x|
|time.xmlschema(9)       |    893.909k|    4.668M|
|                        |           -|     5.22x|
|utc_time.xmlschema(9)   |      1.056M|    5.707M|
|                        |           -|     5.40x|
```
2024-09-05 19:23:12 +02:00
..
-ext- Reset the counter for two consecutive runs 2024-07-31 10:59:51 +09:00
.excludes
.excludes-prism Revert pending `EVENT_RETURN` tests 2024-07-17 14:06:11 -04:00
benchmark
cgi
coverage [PRISM] Modify test_coverage to take prism into account 2024-04-26 12:25:45 -04:00
date
did_you_mean
digest
dtrace
erb
error_highlight [ruby/error_highlight] Make test_COLON2_5 conditional again 2024-07-12 06:26:53 +00:00
etc
fiber Enumerator should use a non-blocking fiber, change `rb_fiber_new` to be non-blocking by default. (#10481) 2024-04-08 00:49:01 +12:00
fiddle [ruby/fiddle] Pick ruby/ruby changes for 2024-07-02 18:33:39 +09:00
fileutils Skip some tests which don't work under permissionless containers 2024-08-23 09:34:41 +10:00
io [ruby/io-console] Store console IO in Ractor-local storage 2024-08-31 08:43:59 +00:00
irb [ruby/irb] Fix easter_egg run without RDoc, fix input-method test 2024-09-03 15:45:40 +00:00
json [flori/json] Use the compiled extension in test 2024-09-03 11:51:51 +09:00
lib [PRISM] Refactor parser support into its own module 2024-07-18 21:15:54 -04:00
logger [ruby/logger] Add reraise_write_errors keyword argument to Logger and LogDevice 2024-07-11 15:25:17 +00:00
mkmf Extend the timeout of test_try_ldflag_invalid_opt and test_try_cppflag_invalid_opt 2024-06-24 18:14:34 +09:00
monitor
net Wait for server threads to finish 2024-07-30 07:33:43 +08:00
objspace [Feature #20470] Split GC into gc_impl.c 2024-07-03 09:03:40 -04:00
open-uri Removed needless block arguments 2024-07-17 17:37:57 +09:00
openssl [ruby/openssl] Fix test_pkey_rsa.rb in FIPS. 2024-09-05 08:41:30 +00:00
optparse [ruby/optparse] Fix parsing array arguments with `:into` option 2024-08-05 02:28:12 +00:00
ostruct
pathname
prism [ruby/prism] Multi-splat flag for arguments 2024-08-28 21:10:39 +00:00
psych [ruby/psych] Convert tabs to spaces in test/psych/test_yaml.rb 2024-08-09 19:35:29 +00:00
rdoc [ruby/rdoc] Fix sidebar scroll again and add missing footer back 2024-08-15 13:33:00 +00:00
reline [ruby/reline] Prevent a warning for `warning: literal string will be 2024-09-05 12:22:34 +00:00
resolv Suppress warning for fd leak 2024-08-22 10:38:43 +09:00
ripper Fix leak of token_info when Ripper#warn jumps 2024-08-07 09:14:14 -04:00
ruby Move Time#xmlschema in core and optimize it 2024-09-05 19:23:12 +02:00
rubygems [rubygems/rubygems] standardize pretty-print output for Gem::Source and subclasses 2024-09-03 17:40:12 +00:00
set
socket Allow Errno::EACCES when testing connection timeout 2024-09-03 18:21:01 -07:00
stringio [ruby/stringio] Remove special handling of chilled strings 2024-05-30 15:11:48 +00:00
strscan
uri [ruby/uri] Use URI::RFC2396_PARSER explicitly in URI 2024-08-08 02:09:27 +00:00
win32 Test for win32/registry.rb 2024-05-03 14:47:18 +09:00
win32ole
yaml
zlib [ruby/zlib] Avoid allocating intermediary strings when read/readpartial are passed an outbuf 2024-05-14 21:44:34 +00:00
runner.rb
test_bundled_gems.rb bundled_gems.rb: Add a fast path 2024-07-22 10:33:07 +02:00
test_delegate.rb [ruby/delegate] test: remove needless mu_pp 2024-04-30 23:31:26 +00:00
test_extlibs.rb
test_find.rb
test_forwardable.rb
test_ipaddr.rb [ruby/ipaddr] Add IPAddr.cidr to return ip address in cidr notation 2024-04-18 10:27:19 +09:00
test_open3.rb
test_pp.rb
test_prettyprint.rb
test_pstore.rb
test_pty.rb
test_rbconfig.rb
test_securerandom.rb
test_shellwords.rb
test_singleton.rb
test_tempfile.rb [ruby/tempfile] Support anonymous tempfile on earlier than Ruby 3.2 2024-08-26 02:49:02 +00:00
test_time.rb
test_timeout.rb Make test_nested_timeouts less flaky 2024-05-28 12:49:46 +09:00
test_tmpdir.rb
test_trick.rb
test_tsort.rb
test_unicode_normalize.rb
test_weakref.rb