summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAvatar Marc-Antoine Perennou <keruspe@exherbo.org> 2017-09-28 11:01:55 +0200
committerAvatar Marc-Antoine Perennou <keruspe@exherbo.org> 2017-09-28 11:43:20 +0200
commitdd44081fc5de7a227c9f6543695fc2075d8a29c9 (patch)
treed239c6c4c9ec6ad1f04c7bbc3468e90aae291c38
parentdd0c459077d5db2c056f36aa7aea60e19ddf7322 (diff)
downloadarbor-dd44081fc5de7a227c9f6543695fc2075d8a29c9.tar.gz
arbor-dd44081fc5de7a227c9f6543695fc2075d8a29c9.tar.xz
ruby: bump to 2.3.5
Signed-off-by: Marc-Antoine Perennou <keruspe@exherbo.org>
-rw-r--r--packages/dev-lang/ruby/files/ruby-2.3.4-merge-revision-s-57410-57619-57621-57631-57634-Backp.patch103
-rw-r--r--packages/dev-lang/ruby/files/ruby-2.3.4-ruby.h-remove-RB_GC_GUARD_PTR.patch54
-rw-r--r--packages/dev-lang/ruby/ruby-2.3.5.exheres-0 (renamed from packages/dev-lang/ruby/ruby-2.3.4.exheres-0)2
3 files changed, 0 insertions, 159 deletions
diff --git a/packages/dev-lang/ruby/files/ruby-2.3.4-merge-revision-s-57410-57619-57621-57631-57634-Backp.patch b/packages/dev-lang/ruby/files/ruby-2.3.4-merge-revision-s-57410-57619-57621-57631-57634-Backp.patch
deleted file mode 100644
index 30aab5c..0000000
--- a/packages/dev-lang/ruby/files/ruby-2.3.4-merge-revision-s-57410-57619-57621-57631-57634-Backp.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-Upstream: yes, cherry-picked from ruby_2_4
-
-From 872e494af0ef06e6f47eff5df91b17aff06cbb54 Mon Sep 17 00:00:00 2001
-From: naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>
-Date: Mon, 13 Mar 2017 07:30:30 +0000
-Subject: [PATCH 2/2] merge revision(s) 57410,57619,57621,57631,57634:
- [Backport #13150]
-
- Prevent GC by volatile [Bug #13150]
-
- test/ruby/test_marshal.rb test_context_switch (load) and test_gc (dump)
- are failed on FreeBSD 10.3 and gcc7 (FreeBSD Ports Collection) 7.0.0
- 20170115 (experimental); RB_GC_GUARD looks not worked well.
- ruby.h: RB_GC_GUARD stronger than gcc7
-
- * include/ruby/ruby.h (RB_GC_GUARD): prevent guarded pointer from
- optimization by using as an input to inline asm.
- ruby.h: remove comment
-
- * include/ruby/ruby.h (RB_GC_GUARD): remove comment unsupported by
- Solaris AS.
- marshal.c: use hidden objects to allow recycling
-
- Hidden objects (klass == 0) are not visible to Ruby code invoked
- from other threads or signal handlers, so they can never be
- accessed from other contexts. This makes it safe to call
- rb_gc_force_recycle on the object slot after releasing malloc
- memory.
-
- * marshal.c (rb_marshal_dump_limited): hide dump_arg and recycle when done
- (rb_marshal_load_with_proc): hide load_arg and recycle when done
- [ruby-core:79518]
- marshal.c: revert r57631 partially
-
- * marshal.c (rb_marshal_dump_limited): do not free dump_arg, which
- may be dereferenced in check_dump_arg due to continuation, and
- get rid of dangling pointers.
-
- * marshal.c (rb_marshal_load_with_proc): ditto for load_arg.
-
-git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_4@57954 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
----
- include/ruby/ruby.h | 6 +++++-
- marshal.c | 4 ++--
- test/ruby/test_marshal.rb | 3 +++
- 3 files changed, 10 insertions(+), 3 deletions(-)
-
-diff --git a/include/ruby/ruby.h b/include/ruby/ruby.h
-index d177da55d5..dccfdc763a 100644
---- a/include/ruby/ruby.h
-+++ b/include/ruby/ruby.h
-@@ -553,7 +553,11 @@ static inline int rb_type(VALUE obj);
-
- #ifdef __GNUC__
- #define RB_GC_GUARD(v) \
-- (*__extension__ ({volatile VALUE *rb_gc_guarded_ptr = &(v); rb_gc_guarded_ptr;}))
-+ (*__extension__ ({ \
-+ volatile VALUE *rb_gc_guarded_ptr = &(v); \
-+ __asm__("" : : "m"(rb_gc_guarded_ptr)); \
-+ rb_gc_guarded_ptr; \
-+ }))
- #elif defined _MSC_VER
- #pragma optimize("", off)
- static inline volatile VALUE *rb_gc_guarded_ptr(volatile VALUE *ptr) {return ptr;}
-diff --git a/marshal.c b/marshal.c
-index c56de4af8d..f03899b09b 100644
---- a/marshal.c
-+++ b/marshal.c
-@@ -1024,7 +1024,7 @@ rb_marshal_dump_limited(VALUE obj, VALUE port, int limit)
- struct dump_arg *arg;
- VALUE wrapper; /* used to avoid memory leak in case of exception */
-
-- wrapper = TypedData_Make_Struct(rb_cData, struct dump_arg, &dump_arg_data, arg);
-+ wrapper = TypedData_Make_Struct(0, struct dump_arg, &dump_arg_data, arg);
- arg->dest = 0;
- arg->symbols = st_init_numtable();
- arg->data = rb_init_identtable();
-@@ -2059,7 +2059,7 @@ rb_marshal_load_with_proc(VALUE port, VALUE proc)
- else {
- io_needed();
- }
-- wrapper = TypedData_Make_Struct(rb_cData, struct load_arg, &load_arg_data, arg);
-+ wrapper = TypedData_Make_Struct(0, struct load_arg, &load_arg_data, arg);
- arg->infection = infection;
- arg->src = port;
- arg->offset = 0;
-diff --git a/test/ruby/test_marshal.rb b/test/ruby/test_marshal.rb
-index 6ac5c29991..dc2b8b30dc 100644
---- a/test/ruby/test_marshal.rb
-+++ b/test/ruby/test_marshal.rb
-@@ -645,6 +645,9 @@ def test_continuation
- c = Bug9523.new
- assert_raise_with_message(RuntimeError, /Marshal\.dump reentered at marshal_dump/) do
- Marshal.dump(c)
-+ GC.start
-+ 1000.times {"x"*1000}
-+ GC.start
- c.cc.call
- end
- end
---
-2.12.3
-
diff --git a/packages/dev-lang/ruby/files/ruby-2.3.4-ruby.h-remove-RB_GC_GUARD_PTR.patch b/packages/dev-lang/ruby/files/ruby-2.3.4-ruby.h-remove-RB_GC_GUARD_PTR.patch
deleted file mode 100644
index 82ce378..0000000
--- a/packages/dev-lang/ruby/files/ruby-2.3.4-ruby.h-remove-RB_GC_GUARD_PTR.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-Upstream: yes, cherry-picked from ruby_2_4
-
-From a2f5554eeda74546ea2f771485f796a6bb3594e2 Mon Sep 17 00:00:00 2001
-From: nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>
-Date: Thu, 17 Mar 2016 13:21:36 +0000
-Subject: [PATCH 1/2] ruby.h: remove RB_GC_GUARD_PTR
-
-* include/ruby/ruby.h (RB_GC_GUARD_PTR): remove intermediate
- macro, and expand for each RB_GC_GUARD. [Fix GH-1293]
-
-git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54158 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
----
- include/ruby/ruby.h | 16 ++++------------
- 1 file changed, 4 insertions(+), 12 deletions(-)
-
-diff --git a/include/ruby/ruby.h b/include/ruby/ruby.h
-index 60cfb1174e..d177da55d5 100644
---- a/include/ruby/ruby.h
-+++ b/include/ruby/ruby.h
-@@ -551,27 +551,19 @@ static inline int rb_type(VALUE obj);
- ((type) == RUBY_T_FLOAT) ? RB_FLOAT_TYPE_P(obj) : \
- (!RB_SPECIAL_CONST_P(obj) && RB_BUILTIN_TYPE(obj) == (type)))
-
--/* RB_GC_GUARD_PTR() is an intermediate macro, and has no effect by
-- * itself. don't use it directly */
- #ifdef __GNUC__
--#define RB_GC_GUARD_PTR(ptr) \
-- __extension__ ({volatile VALUE *rb_gc_guarded_ptr = (ptr); rb_gc_guarded_ptr;})
--#else
--#ifdef _MSC_VER
-+#define RB_GC_GUARD(v) \
-+ (*__extension__ ({volatile VALUE *rb_gc_guarded_ptr = &(v); rb_gc_guarded_ptr;}))
-+#elif defined _MSC_VER
- #pragma optimize("", off)
- static inline volatile VALUE *rb_gc_guarded_ptr(volatile VALUE *ptr) {return ptr;}
- #pragma optimize("", on)
-+#define RB_GC_GUARD(v) (*rb_gc_guarded_ptr(&(v)))
- #else
- volatile VALUE *rb_gc_guarded_ptr_val(volatile VALUE *ptr, VALUE val);
- #define HAVE_RB_GC_GUARDED_PTR_VAL 1
- #define RB_GC_GUARD(v) (*rb_gc_guarded_ptr_val(&(v),(v)))
- #endif
--#define RB_GC_GUARD_PTR(ptr) rb_gc_guarded_ptr(ptr)
--#endif
--
--#ifndef RB_GC_GUARD
--#define RB_GC_GUARD(v) (*RB_GC_GUARD_PTR(&(v)))
--#endif
-
- #ifdef __GNUC__
- #define RB_UNUSED_VAR(x) x __attribute__ ((unused))
---
-2.12.3
-
diff --git a/packages/dev-lang/ruby/ruby-2.3.4.exheres-0 b/packages/dev-lang/ruby/ruby-2.3.5.exheres-0
index d966a92..d42e744 100644
--- a/packages/dev-lang/ruby/ruby-2.3.4.exheres-0
+++ b/packages/dev-lang/ruby/ruby-2.3.5.exheres-0
@@ -13,8 +13,6 @@ DEPENDENCIES="
DEFAULT_SRC_PREPARE_PATCHES+=(
"${FILES}"/random-${SLOT}.patch
- "${FILES}"/${PNV}-ruby.h-remove-RB_GC_GUARD_PTR.patch
- "${FILES}"/${PNV}-merge-revision-s-57410-57619-57621-57631-57634-Backp.patch
)
src_prepare() {