Граф коммитов

3022 Коммитов

Автор SHA1 Сообщение Дата
John Hawthorn 8dbddd5bf8 Rename opes to operands
Co-authored-by: Aaron Patterson <aaron.patterson@gmail.com>
2023-03-16 14:16:56 -07:00
John Hawthorn d454a590cc Re-add RJIT::Instruction#opes 2023-03-16 14:16:56 -07:00
Takashi Kokubun 182f4f0d1c Fix a bindgen CI failure 2023-03-16 11:05:54 -07:00
Takashi Kokubun a8e7fee801 Revert "core_assertions.rb: Refine `assert_linear_performance`"
This reverts commit cae4342dd5.

This is failing a lot of CIs and nobody is actively looking into fixing
it. Let me revert this until we have a solution to it.
2023-03-16 09:22:42 -07:00
Nobuyoshi Nakada cae4342dd5
core_assertions.rb: Refine `assert_linear_performance`
* Use an `Enumerable` as factors, instead of three arguments.
2023-03-16 18:51:02 +09:00
Nobuyoshi Nakada 09041a6ee8
core_assertions.rb: Refine `assert_linear_performance`
* Add `rehearsal` keyword argument
* Stop repeating with the same factor
2023-03-15 18:19:31 +09:00
Takashi Kokubun 70ba310212
YJIT: Introduce no_gc attribute (#7511) 2023-03-14 15:38:58 -07:00
Takashi Kokubun ed269c81aa RJIT: Count invokeblock exit types 2023-03-12 23:38:11 -07:00
Takashi Kokubun d27b594841 RJIT: Fix a typo
and import a missing function
2023-03-12 22:09:05 -07:00
Takashi Kokubun 9cd5441d28 RJIT: Implement --rjit-trace-exits 2023-03-12 15:15:08 -07:00
Nobuyoshi Nakada 7ce4b716bd
Add test for linear performance 2023-03-12 18:50:39 +09:00
Nobuyoshi Nakada 781222a8bc
core_assertions.rb: Consider backward compatibilities
This file is copied to default gems, which might support older
versions.
2023-03-12 18:40:41 +09:00
Takashi Kokubun fe34db5a1b RJIT: Migrate SIZET values to RJIT::C constants 2023-03-11 22:04:30 -08:00
Takashi Kokubun 50c5f94ed7 RJIT: Introduce constants under RubyVM::RJIT::C 2023-03-11 21:48:28 -08:00
Takashi Kokubun 58f7e8b7f8 RJIT: Automate function pointer imports 2023-03-11 21:26:40 -08:00
Takashi Kokubun 47a6cfca72 RJIT: Use as the largest type as possible
to just import stuff easily
2023-03-11 21:26:40 -08:00
Takashi Kokubun 46a3634bcf RJIT: Use SIZET macros instead of original PTR ones 2023-03-11 20:47:08 -08:00
Takashi Kokubun c6bea54c70 RJIT: Drop unused USE_* macros support 2023-03-11 20:42:28 -08:00
Takashi Kokubun 94da5f7c36 Rename builtin attr :inline to :leaf 2023-03-11 14:25:12 -08:00
Takashi Kokubun 0c0c88d383 Support multiple attributes with Primitive.attr! 2023-03-11 14:19:46 -08:00
Takashi Kokubun 3a02c7818c
Change the syntax of Primitive.attr! to Symbol (#7501) 2023-03-10 23:40:57 -08:00
Takashi Kokubun 6440d159b3 RJIT: Simplify RubyVM::RJIT::Instruction 2023-03-10 13:15:48 -08:00
Takashi Kokubun cdece5cf36 RJIT: Remove unused code from headers 2023-03-10 13:11:01 -08:00
Ian Ker-Seymer dd47ce10db [rubygems/rubygems] Use `RbSys::ExtensionTask` when creating new rust gems
https://github.com/rubygems/rubygems/commit/125f9fece9
2023-03-10 11:50:06 +00:00
Takashi Kokubun f5909ac6d9 RJIT: Stop allowing leaked globals rjit_* 2023-03-08 23:24:38 -08:00
Takashi Kokubun 309dd50a01 Fix node search in bindgen
This is to fix a weird bindgen behavior on Matt's branch:
https://github.com/ruby/ruby/pull/7393
2023-03-08 13:13:23 -08:00
Nobuyoshi Nakada bead4bce3b Constify local static variables in yyparse 2023-03-08 20:07:46 +09:00
Hiroshi SHIBATA 1163204021 code style 2023-03-08 17:48:43 +09:00
Hiroshi SHIBATA 0c9733ea86 Added missing dependency for rubygems 2023-03-08 17:48:43 +09:00
Hiroshi SHIBATA a7cee4da97 Added debug info to gemspec version check 2023-03-08 17:48:43 +09:00
Hiroshi SHIBATA c25738762a Check bundled_gems version and gemspec version strictly 2023-03-08 17:48:43 +09:00
Takashi Kokubun e93e780f3d Remove MJIT's builtin function compiler 2023-03-07 23:16:24 -08:00
Takashi Kokubun 23ec248e48 s/mjit/rjit/ 2023-03-06 23:44:01 -08:00
Takashi Kokubun 2e875549a9 s/MJIT/RJIT/ 2023-03-06 23:44:01 -08:00
Takashi Kokubun eaccdc1941 Rename MJIT filenames to RJIT 2023-03-06 23:44:01 -08:00
Takashi Kokubun 011c08b643 Remove obsoleted mjit_sp_inc.inc.erb 2023-03-06 23:05:50 -08:00
Takashi Kokubun b2130d5f5d Remove obsoleted tool/mjit_tabs.rb 2023-03-06 22:53:38 -08:00
Takashi Kokubun 072fc7671a Remove obsoleted tool/mjit_archflag.sh 2023-03-06 22:43:32 -08:00
Takashi Kokubun 31f4b2d86b
Drop obsoleted MJIT header (#7458)
RJIT doesn't need this.
2023-03-06 21:41:48 -08:00
Takashi Kokubun 85c6169674 Implement struct aref 2023-03-05 23:28:59 -08:00
Takashi Kokubun 35faa33b65 Implement bmethod 2023-03-05 23:28:59 -08:00
Takashi Kokubun c587666f68 Optimize Thread.current 2023-03-05 23:28:59 -08:00
Takashi Kokubun f2ef352ee0 Implement opt_str_freeze 2023-03-05 23:28:59 -08:00
Takashi Kokubun a1b2395409 Check for classes consistently 2023-03-05 23:28:59 -08:00
Takashi Kokubun 46a14b65fb Implement objtostring 2023-03-05 23:28:59 -08:00
Takashi Kokubun 7456b10c33 Implement getblockparamproxy 2023-03-05 23:28:59 -08:00
Takashi Kokubun db4a8afa5e Optimize BasicObject#! 2023-03-05 23:28:59 -08:00
Takashi Kokubun 487d4aa970 Implement known class guard for flonum 2023-03-05 23:28:59 -08:00
Takashi Kokubun 706f6272d9 Guard against GC of random ISEQs 2023-03-05 23:28:59 -08:00
Takashi Kokubun 33213542f2 Implement invokesuper 2023-03-05 23:28:59 -08:00
Takashi Kokubun 2cc4f506ba Implement optimized send 2023-03-05 23:28:59 -08:00
Takashi Kokubun a4bf1c661b Implement opt_invokebuiltin_delegate 2023-03-05 23:28:59 -08:00
Takashi Kokubun 7b78fd0df2 Count optimized method types 2023-03-05 23:28:59 -08:00
Takashi Kokubun d120394df3 Implement duparray and expandarray 2023-03-05 23:28:59 -08:00
Takashi Kokubun 3774fe4e91 Implement opt_eq and opt_neq 2023-03-05 23:28:59 -08:00
Takashi Kokubun bc50b0475a Implement opt_and and opt_or 2023-03-05 23:28:59 -08:00
Takashi Kokubun 67cc53214c Implement setlocal_WC_0 2023-03-05 23:28:59 -08:00
Takashi Kokubun ba491598cc Implement opt_mod 2023-03-05 23:28:59 -08:00
Takashi Kokubun 73a5b3d5d2 Implement Array#[] 2023-03-05 23:28:59 -08:00
Takashi Kokubun 51d36c7b34 Implement opt_le, opt_ge, and opt_gt 2023-03-05 23:28:59 -08:00
Takashi Kokubun 9e42f31574 Do not compile C calls when C tracing is enabled 2023-03-05 22:41:35 -08:00
Takashi Kokubun 14acf9b0a3 Decode trace insns properly 2023-03-05 22:41:35 -08:00
Takashi Kokubun 494989e87e Partially implement send of cfunc 2023-03-05 22:41:35 -08:00
Takashi Kokubun ecae1cd74e Implement attr_reader 2023-03-05 22:41:35 -08:00
Takashi Kokubun fa9a0cb970 Count unsupported method types 2023-03-05 22:11:20 -08:00
Takashi Kokubun 8d099ff699 Implement opt_aref for Hash 2023-03-05 22:11:20 -08:00
Takashi Kokubun a458923fe5 Implement jit_guard_known_class 2023-03-05 22:11:20 -08:00
Takashi Kokubun d332c6ee12 Implement getlocal_WC_1 2023-03-05 22:11:20 -08:00
Takashi Kokubun 5a1cee1d96 Implement getivar 2023-03-05 22:11:20 -08:00
Takashi Kokubun 6c1b1fa1f5 Refactor BranchStub 2023-03-05 22:11:20 -08:00
Takashi Kokubun 5c638c97bb Implement opt_plus 2023-03-05 22:11:20 -08:00
Takashi Kokubun e731ced271 Implement method call 2023-03-05 22:11:20 -08:00
Takashi Kokubun fa0b9c1c97 Initial implementation of send 2023-03-05 22:11:20 -08:00
Takashi Kokubun 9ef04f5636 Implement opt_minus 2023-03-05 22:11:20 -08:00
Takashi Kokubun a8dec34961 Implement initial opt_lt 2023-03-05 22:11:20 -08:00
Takashi Kokubun 21696ad81e Partly implement BOP assumption 2023-03-05 22:11:20 -08:00
Takashi Kokubun 9f8f1afba2 Implement --mjit-stats 2023-03-05 22:11:20 -08:00
Takashi Kokubun 4fe5efbf7f Implement asm comments 2023-03-05 22:11:20 -08:00
Takashi Kokubun d9c2eb6f42 Move modules around 2023-03-05 22:11:20 -08:00
Hiroshi SHIBATA 38831ae290
Introduce `UPDATE_BUNDLED_GEMS_ALL` option for auto update for bundled_gems file
We used `url` field for testing via git clone. Because `Gem::Specification#homepage` or
  `Gem::Specification#metadata` could assign non-git url. Unfotunately, We should specify
  clone URL for testing.
2023-03-06 10:42:36 +09:00
Nobuyoshi Nakada 6b46057e5c
Expand the test directory to real path
When the test source directory path contains symbolic links, that
directory might be placed earlier in the result of
`IRB::InputCompletor.retrieve_gem_and_system_load_path`, than other
directories in the source tree that are expanded to the real path.  In
that case, the test file in "csv" under the test directory of csv gem
instead of the library path will be the first candidate, in
`TestIRB::TestCompletion#test_complete_require_library_name_first`.

```
<"'csv"> expected but was
<"'csv/helper">.
```
2023-03-03 15:30:02 +09:00
Soutaro Matsumoto 1abec43b5d
Fix rbs (#7415)
* Update RBS to skip validation task
* Revert TEST_BUNDLED_GEMS_ALLOW_FAILURES
2023-03-02 12:59:04 +09:00
lukeg ba55706fb6 fix test/rubygems/test_gem_package_task.rb when in -j mode
This test skipped sometimes due to failure to load 'rake/packagetask'.
This is due to manipulation of $LOAD_PATH by other rubygems tests. If
rake is loaded before any rubygems tests run, then it works fine.

To reproduce the skipping behavior:
  $ make test-all TESTOPTS="-j6 --test-order=sorted test/rubygems/test_*.rb"
2023-02-28 06:34:27 +09:00
Hiroshi SHIBATA db0a4c8923 Prefer to use File.foreach instead of IO.foreach 2023-02-27 18:49:18 +09:00
Ben Hamilton c8bafc3b01 Fix autoconf RUBY_STACK_GROW_DIRECTION on ARM devices 2023-02-26 22:17:24 +09:00
Peter Zhu 3e09822407 Fix incorrect line numbers in GC hook
If the previous instruction is not a leaf instruction, then the PC was
incremented before the instruction was ran (meaning the currently
executing instruction is actually the previous instruction), so we
should not increment the PC otherwise we will calculate the source
line for the next instruction.

This bug can be reproduced in the following script:

```
require "objspace"

ObjectSpace.trace_object_allocations_start
a =

  1.0 / 0.0
p [ObjectSpace.allocation_sourceline(a), ObjectSpace.allocation_sourcefile(a)]
```

Which outputs: [4, "test.rb"]

This is incorrect because the object was allocated on line 10 and not
line 4. The behaviour is correct when we use a leaf instruction (e.g.
if we replaced `1.0 / 0.0` with `"hello"`), then the output is:
[10, "test.rb"].

[Bug #19456]
2023-02-24 14:10:09 -05:00
Peter Zhu d2631c427e Fix RubyVM::CExpr#inspect
@__LINE__ can be nil which causes the inspect method to fail.
2023-02-24 14:10:09 -05:00
Nobuyoshi Nakada ac5a949c2a
Refine exception messages when git failed 2023-02-22 10:23:05 +09:00
Nobuyoshi Nakada 37b6d98840 Use `Gem::Package#build` instead of the class method for old baseruby 2023-02-22 02:07:59 +09:00
Nobuyoshi Nakada 289080e4d8 Clone and create dummy gemspec in sequential build 2023-02-22 02:07:59 +09:00
Nobuyoshi Nakada 241c4cfdd4 Move dummy gemspec file creation for extract-gems-sequential 2023-02-22 02:07:59 +09:00
Matt Valentine-House 3c01342e19 Fix detection of compiler_wd in tool/update-deps 2023-02-21 10:57:28 -05:00
Yusuke Endoh 759d23584e Create a dummy minitest.gemspec for a bundled gem
To use the repository version of bundled gems, we need to build a gem by
"gem build", but the repository of minitest does not include
minitest.gemspec because it uses hoe.

This change creats a dummy minitest.gemspec to pass the CI.
2023-02-19 21:06:13 +09:00
Nobuyoshi Nakada 849087ccb1
Apply zone offset to the last modified time 2023-02-13 15:12:14 +09:00
Hiroshi SHIBATA 07bf97e94f
Enhancement github releases generator
* Create GitHub Releases by itself
  * Added help and usage message
  * Decorate release body
2023-02-10 09:26:12 +09:00
Hiroshi SHIBATA 0a8faab5c2
Avoid to duplicate entries that own redmine and github ids 2023-02-09 19:21:31 +09:00
Hiroshi SHIBATA 5991af204c
Added helper script for generate github releases 2023-02-09 18:52:59 +09:00
Hiroshi SHIBATA 6e7990144f Removed svn feature from make-snapshot 2023-02-08 15:36:32 +09:00
NARUSE, Yui 269c5d408f fix to work with the case default issue is used 2023-02-01 22:49:54 +09:00
Nobuyoshi Nakada be81495c16
Silence dozens of useless warnings from `nm` on macOS 2023-01-31 19:42:01 +09:00
NARUSE, Yui b0b61623ad Add quotes to backport field 2023-01-31 10:53:57 +09:00
Nobuyoshi Nakada 3a7367ccc3 mkconfig: Map `includedir` only for system ruby
Only when installing to the system path on macOS, prepend '$(SDKROOT)'
and remap `includedir`.
Fix https://github.com/rbenv/ruby-build/discussions/2123
2023-01-31 06:33:16 +09:00
Alan Wu 7d4395cb69 YJIT: Fix shared/static library symbol leaks
Rust 1.58.0 unfortunately doesn't provide facilities to control symbol
visibility/presence, but we care about controlling the list of
symbols exported from libruby-static.a and libruby.so.

This commit uses `ld -r` to make a single object out of rustc's
staticlib output, libyjit.a. This moves libyjit.a out of MAINLIBS and adds
libyjit.o into COMMONOBJS, which obviates the code for merging libyjit.a
into libruby-static.a. The odd appearance of libyjit.a in SOLIBS is also
gone.

To filter out symbols we do not want to export on ELF platforms, we use
objcopy after the partial link. On darwin, we supply a symbol list to
the linker which takes care of hiding unprefixed symbols.

[Bug #19255]

Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
2023-01-27 12:28:09 -05:00
Nobuyoshi Nakada 6422fef90c Fix `target_cpu` at runtime 2023-01-26 16:31:08 +09:00
Hiroshi SHIBATA 2d98127131
Filter spec directory for code coverage 2023-01-26 14:05:01 +09:00
Hiroshi SHIBATA 069b6f88e2 Ignore all of tool directory from code coverage, It contains tool/test and etc. 2023-01-26 13:52:20 +09:00
Hiroshi SHIBATA 8662d70a8b Ignore vendored libraries by rubygems from code coverage 2023-01-26 13:52:20 +09:00
Hiroshi SHIBATA 98e84f3f7a filter coverage result with vendored libraries and test code 2023-01-26 13:52:20 +09:00
Nobuyoshi Nakada 17f5631c6e [Bug #19340] Fix bundle gems with test revision
Build temporary gem package from cloned repository if test revision is
set.
2023-01-26 12:50:39 +09:00
Hiroshi SHIBATA 5e1e5af2e7
Support simplecov-0.22.0.
simplecov-0.22.0 no longer support pre-0.18 result format. result data needs
  `lines` key for coverage data.
2023-01-25 16:47:05 +09:00
Nobuyoshi Nakada 1e2523fad7
Silence dozens of useless warnings from `ranlib` on macOS [ci skip] 2023-01-23 19:02:36 +09:00
Nobuyoshi Nakada 418b03c750
tool/leaked-globals: ignore function typedef [ci skip] 2023-01-21 19:26:16 +09:00
Nobuyoshi Nakada 03f5db01e6
Make installation messages verbose a little [ci skip] 2023-01-18 23:55:25 +09:00
Hiroshi SHIBATA 18d8333c30 Switch to use gem version of simplecov, not git clone 2023-01-18 20:19:08 +09:00
Hiroshi SHIBATA ba45be3c43
Supressing warnings messages like:
Ignoring debug-1.7.1 because its extensions are not built. Try: gem pristine debug --version 1.7.

  Revert "Clear gem paths for each test"

  This reverts commit 6698b580dd.
2023-01-18 16:14:00 +09:00
Nobuyoshi Nakada 6698b580dd Clear gem paths for each test
So that rubygems can find the bundled rake.
2023-01-15 23:57:43 +09:00
Nobuyoshi Nakada fc7f852033
[DOC] Add gem lists to NEWS.md automatically 2023-01-13 20:34:45 +09:00
Nobuyoshi Nakada 447f8f7a3c
[DOC] Changed gem list style in NEWS.md 2023-01-13 20:34:45 +09:00
Nobuyoshi Nakada 3ecffae8e8
[DOC] Extract tool/update-NEWS-gemlist.rb 2023-01-13 20:34:08 +09:00
Benoit Daloze 327cf5ec40 Skip rbs Encoding#replicate test 2023-01-11 13:41:41 +01:00
Nobuyoshi Nakada be1db1ca5c
Just ignore empty lines in bundled_gems file [ci skip] 2023-01-10 23:31:04 +09:00
Hiroshi SHIBATA 900230837b
Fixed a typo 2023-01-10 13:07:36 +09:00
Nobuyoshi Nakada 1cd4db772c
Adjust spec of bundler like as `sync_default_gems` [ci skip] 2023-01-08 22:14:39 +09:00
Nobuyoshi Nakada 60ccd1ca81
Ignore LICENSE files of libraries vendored in rubygems [ci skip] 2023-01-08 20:58:12 +09:00
Hiroshi SHIBATA b496578758
Skip Test::Unit::AutoRunner logic in ruby/ruby repository 2023-01-05 08:16:24 +09:00
Hiroshi SHIBATA 1f2fef1f9a
[ruby/openssl] Stop AutoRunner with test-unit
https://github.com/ruby/openssl/commit/0d4cd8b9ca
2023-01-05 08:06:49 +09:00
Koichi Sasada c182d46d24 check `NO_COLOR` envval
Support `NO_COLOR` (https://no-color.org/) to make parsing output easy.
2022-12-26 23:06:35 +09:00
Hiroshi SHIBATA b7ad60a794 Merge RubyGems/Bundler master
from 72fd3dd209
2022-12-26 15:09:21 +09:00
Hiroshi SHIBATA 5ec94ff740
Generate parser-text.rb of racc when sync it 2022-12-26 13:17:33 +09:00
David Rodríguez 8f05e4f54b Update Bundler to 2.4.1 & and RubyGems to 3.4.1 2022-12-25 05:55:36 +09:00
Nobuyoshi Nakada 3cbe37bd35
Support new style diagnostic reports 2022-12-25 00:43:27 +09:00
Takashi Kokubun b9332ac8e7
MJIT: Cancel all on disastrous situations (#7019)
I noticed this while running test_yjit with --mjit-call-threshold=1, 
which redefines `Integer#<`. When Ruby is monkey-patched, 
MJIT itself could be broken.

Similarly, Ruby scripts could break MJIT in many different ways. I
prepared the same set of hooks as YJIT so that we could possibly
override it and disable it on those moments. Every constant under
RubyVM::MJIT is private and thus it's an unsupported behavior though.
2022-12-24 01:13:40 -08:00
Hiroshi SHIBATA f6620037ba Merge RubyGems-3.4.0 and Bundler-2.4.0 2022-12-24 16:57:07 +09:00
Takashi Kokubun 0b2aea861c Polish the public docs for MJIT [ci skip]
Now every private interface is cleaned up, and the public interface is
documented.
2022-12-22 14:30:09 -08:00
Takashi Kokubun bb4cbd0803
Put RubyVM::MJIT::Compiler under ruby_vm directory (#6989)
[Misc #19250]
2022-12-21 22:46:15 -08:00
Nobuyoshi Nakada 398aaed2f0
Fix the case trailer without newline
cf0b413ef8
2022-12-22 00:34:21 +09:00
Soutaro Matsumoto 6af6857ecf
Set up RBS_SKIP_TESTS (#6862)
* Set up RBS_SKIP_TESTS
2022-12-21 22:11:51 +09:00
Nobuyoshi Nakada befc99c008
[DOC] tool/update-NEWS-refs.rb: Align footnotes 2022-12-21 20:48:51 +09:00
Nobuyoshi Nakada c7c006cc68
[DOC] tool/update-NEWS-refs.rb: Remove extra brackets
Surrounding with brackets is just a convention for the bugs tracker
links.
2022-12-21 20:48:51 +09:00
Yuta Saito afd46429fc tool/m4/ruby_wasm_tools.m4: force passing WASI_SDK_PATH when building for wasi
Make the WASI_SDK_PATH variable mandatory when building for wasi host.
This requirement prevents developers from being stuck due to unfriendly
configuration's error message.
2022-12-21 11:19:23 +09:00
Nobuyoshi Nakada 031bc21abb
expand-config.rb: search revision.h to extract release date 2022-12-20 17:40:19 +09:00
Yusuke Endoh 2605ff79aa tool/update-NEWS-refs.rb: Accept non-redmine url links 2022-12-19 14:48:18 +09:00
Yusuke Endoh b9ea83fc1c Update NEWS.md
Regexp optimization and Wasm support are added.
2022-12-16 02:21:50 +09:00
Hiroshi SHIBATA f2690be746
Removed temporary workaround for syntax_suggest tags 2022-12-16 15:48:00 +09:00
Hiroshi SHIBATA 49b0f3b024 Merge RubyGems/Bundler master
Pick from 084f7d1f21
2022-12-15 19:06:40 +09:00
Samuel Williams d20bd06a97
Remove `require 'io/wait'` where it's no longer necessary. (#6932)
* Remove `require 'io/wait'` as it's part of core now.

* Update ruby specs using version gates.

* Add note about why it's conditional.
2022-12-15 11:37:01 +13:00
Hiroshi SHIBATA 20c34f10d7
Use versioning sort for released version detection 2022-12-14 15:46:19 +09:00
Takashi Kokubun abf9a32182
Match ABI versions precisely
"3.2.0+33" starts with "3.2.0+3", but it doesn't mean that they are the
same ABI version.
2022-12-13 22:07:42 -08:00
Jimmy Miller 2d5b723b2f
Fix build when enable_shared is on (#6924)
Before this change, if enable_shared was true, the directory would have a suffix of -static and be deleted on each make install. This would cause a second make install to fail.
2022-12-13 21:59:21 -08:00
Hiroshi SHIBATA 03927b565b
Pin syntax_suggest-1.0.1 manually because it mixed dead_end tags 2022-12-14 12:57:30 +09:00