<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/ext/fiddle, branch ruby_2_7</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>merge revision(s) 25e56fe374478a2266ac25f22a07bb3c6a423c83,8758b07b1e4fd636dffb4b442388a3033c63d4b5,791e8eec66d3aebcee36c1369b0bf52bc3815e94: [Backport #18016]</title>
<updated>2021-11-24T10:25:38+00:00</updated>
<author>
<name>NAKAMURA Usaku</name>
<email>usa@ruby-lang.org</email>
</author>
<published>2021-11-24T10:25:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=6601fb5672dc4c1f4bf5ee0f9b3f97a029df06cd'/>
<id>6601fb5672dc4c1f4bf5ee0f9b3f97a029df06cd</id>
<content type='text'>
	[ruby/fiddle] Fix Win32Types for Windows 64-bit (#63)

	https://docs.microsoft.com/en-us/windows/win32/winprog/windows-data-types

	https://github.com/ruby/fiddle/commit/28ee5b1608
	---
	 ext/fiddle/lib/fiddle/types.rb | 8 ++++----
	 1 file changed, 4 insertions(+), 4 deletions(-)

	[ruby/fiddle] Fix more Win32Types definitions

	https://docs.microsoft.com/en-us/windows/win32/winprog/windows-data-types

	https://github.com/ruby/fiddle/commit/805c1a595a
	---
	 ext/fiddle/lib/fiddle/types.rb | 23 ++++++++++++-----------
	 1 file changed, 12 insertions(+), 11 deletions(-)

	[ruby/fiddle] win32types: sort

	https://github.com/ruby/fiddle/commit/35dec6c5a5
	---
	 ext/fiddle/lib/fiddle/types.rb | 30 +++++++++++++++---------------
	 1 file changed, 15 insertions(+), 15 deletions(-)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	[ruby/fiddle] Fix Win32Types for Windows 64-bit (#63)

	https://docs.microsoft.com/en-us/windows/win32/winprog/windows-data-types

	https://github.com/ruby/fiddle/commit/28ee5b1608
	---
	 ext/fiddle/lib/fiddle/types.rb | 8 ++++----
	 1 file changed, 4 insertions(+), 4 deletions(-)

	[ruby/fiddle] Fix more Win32Types definitions

	https://docs.microsoft.com/en-us/windows/win32/winprog/windows-data-types

	https://github.com/ruby/fiddle/commit/805c1a595a
	---
	 ext/fiddle/lib/fiddle/types.rb | 23 ++++++++++++-----------
	 1 file changed, 12 insertions(+), 11 deletions(-)

	[ruby/fiddle] win32types: sort

	https://github.com/ruby/fiddle/commit/35dec6c5a5
	---
	 ext/fiddle/lib/fiddle/types.rb | 30 +++++++++++++++---------------
	 1 file changed, 15 insertions(+), 15 deletions(-)
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) d732bc51bdbfe7d66038731d42e01a511d13b5f8,633a1f15d8228236094ddee12e4e169d655ec49e,95f387f61a4a4ea92635da760b7de5b1e09bb84e,528a3a17977aa1843a26630c96635c3cb161e729,261569d4aac440f25de588cca365163ecf1124a2,e4a9e926f0fe0acf2fbe61da6e075a95d34be066,318be1cb2f9c6f04403c063a5618c6267012ee51,e1855100e46040e73630b378974c17764e0cccee,9cfa811b0f209d714f89fe0de6778c71f77556c7,b68dab866724aacc1cbc6b7d5e1f555dec092346: [Backport #17202]</title>
<updated>2020-09-30T22:53:55+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@ruby-lang.org</email>
</author>
<published>2020-09-30T22:53:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=229c041f057f24b8e5c0c911738e17dfb3da4515'/>
<id>229c041f057f24b8e5c0c911738e17dfb3da4515</id>
<content type='text'>
	Revert "Revert "Revert "[ruby/fiddle] Use ffi_closure_free by
	 default. (#20)"""

	This reverts commit 87f6154bb4c67ca77ee353bb1fe25a922036c0e5.

	It turned out that the change fails to build on macOS

	https://rubyci.org/logs/rubyci.s3.amazonaws.com/osx1014/ruby-master/log/20200304T074503Z.fail.html.gz
	```
	+ make 'TESTS=--hide-skip -v fiddle' RUBYOPT=-w test-all
	dyld: lazy symbol binding failed: Symbol not found: _ffi_closure_alloc
	  Referenced from: /Users/hsbt/Documents/cb/tmp/build/20200304T074503Z/ruby/.ext/x86_64-darwin18/fiddle.bundle
	  Expected in: flat namespace

	dyld: Symbol not found: _ffi_closure_alloc
	  Referenced from: /Users/hsbt/Documents/cb/tmp/build/20200304T074503Z/ruby/.ext/x86_64-darwin18/fiddle.bundle
	  Expected in: flat namespace

	make: *** [yes-test-all] Abort trap: 6
	```

	[ruby/fiddle] Use ffi_closure_free if available

	[ruby/fiddle] ffi_closure_free is available in the bundled libffi

	[ruby/fiddle] use ffi_closure_alloc only with 3.2 or later

	[ruby/fiddle] always use ffi_closure_alloc on Windows

	Fixed a typo

	Show libffi version only if set

	ext/fiddle/extconf.rb: check if ffi_closure_alloc is available

	to define HAVE_FFI_CLOSURE_ALLOC.
	The macro is used in closure.c, so have_func check is needed.

	If pkg-config is not installed, extconf.rb fails to detect the version
	of libffi, and does not add "-DUSE_FFI_CLOSURE_ALLOC=1" even when system
	libffi version is &gt;= 3.2.

	If USE_FFI_CLOSURE_ALLOC is not defined, closure.c attempts to check if
	HAVE_FFI_CLOSURE_ALLOC is defined or not, but have_func was removed with
	528a3a17977aa1843a26630c96635c3cb161e729, so the macro is always not
	defined.

	This resulted in this deprecation warning:

	https://rubyci.org/logs/rubyci.s3.amazonaws.com/ubuntu2004/ruby-master/log/20200512T123003Z.log.html.gz
	```
	compiling closure.c
	closure.c: In function 'initialize':
	closure.c:265:5: warning: 'ffi_prep_closure' is deprecated: use ffi_prep_closure_loc instead [-Wdeprecated-declarations]
	  265 |     result = ffi_prep_closure(pcl, cif, callback, (void *)self);
	      |     ^~~~~~
	In file included from ./fiddle.h:42,
	                 from closure.c:1:
	/usr/include/x86_64-linux-gnu/ffi.h:334:1: note: declared here
	  334 | ffi_prep_closure (ffi_closure*,
	      | ^~~~~~~~~~~~~~~~
	```

	Do not try ffi_closure_alloc if libffi is &lt;= 3.1

	Maybe due to e1855100e46040e73630b378974c17764e0cccee, CentOS, RHEL, and
	Fedora CIs have started failing with SEGV.  Try to avoid
	ffi_closure_alloc on those environments.

	https://rubyci.org/logs/rubyci.s3.amazonaws.com/centos8/ruby-master/log/20200512T183004Z.fail.html.gz
	https://rubyci.org/logs/rubyci.s3.amazonaws.com/fedora32/ruby-master/log/20200512T183004Z.fail.html.gz
	https://rubyci.org/logs/rubyci.s3.amazonaws.com/rhel8/ruby-master/log/20200512T183003Z.fail.html.gz

	ext/fiddle/extconf.rb: Fix the condition of libffi &lt;= 3.1

	ver is [3, 1, 0] which is not less then or equal to [3, 1]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	Revert "Revert "Revert "[ruby/fiddle] Use ffi_closure_free by
	 default. (#20)"""

	This reverts commit 87f6154bb4c67ca77ee353bb1fe25a922036c0e5.

	It turned out that the change fails to build on macOS

	https://rubyci.org/logs/rubyci.s3.amazonaws.com/osx1014/ruby-master/log/20200304T074503Z.fail.html.gz
	```
	+ make 'TESTS=--hide-skip -v fiddle' RUBYOPT=-w test-all
	dyld: lazy symbol binding failed: Symbol not found: _ffi_closure_alloc
	  Referenced from: /Users/hsbt/Documents/cb/tmp/build/20200304T074503Z/ruby/.ext/x86_64-darwin18/fiddle.bundle
	  Expected in: flat namespace

	dyld: Symbol not found: _ffi_closure_alloc
	  Referenced from: /Users/hsbt/Documents/cb/tmp/build/20200304T074503Z/ruby/.ext/x86_64-darwin18/fiddle.bundle
	  Expected in: flat namespace

	make: *** [yes-test-all] Abort trap: 6
	```

	[ruby/fiddle] Use ffi_closure_free if available

	[ruby/fiddle] ffi_closure_free is available in the bundled libffi

	[ruby/fiddle] use ffi_closure_alloc only with 3.2 or later

	[ruby/fiddle] always use ffi_closure_alloc on Windows

	Fixed a typo

	Show libffi version only if set

	ext/fiddle/extconf.rb: check if ffi_closure_alloc is available

	to define HAVE_FFI_CLOSURE_ALLOC.
	The macro is used in closure.c, so have_func check is needed.

	If pkg-config is not installed, extconf.rb fails to detect the version
	of libffi, and does not add "-DUSE_FFI_CLOSURE_ALLOC=1" even when system
	libffi version is &gt;= 3.2.

	If USE_FFI_CLOSURE_ALLOC is not defined, closure.c attempts to check if
	HAVE_FFI_CLOSURE_ALLOC is defined or not, but have_func was removed with
	528a3a17977aa1843a26630c96635c3cb161e729, so the macro is always not
	defined.

	This resulted in this deprecation warning:

	https://rubyci.org/logs/rubyci.s3.amazonaws.com/ubuntu2004/ruby-master/log/20200512T123003Z.log.html.gz
	```
	compiling closure.c
	closure.c: In function 'initialize':
	closure.c:265:5: warning: 'ffi_prep_closure' is deprecated: use ffi_prep_closure_loc instead [-Wdeprecated-declarations]
	  265 |     result = ffi_prep_closure(pcl, cif, callback, (void *)self);
	      |     ^~~~~~
	In file included from ./fiddle.h:42,
	                 from closure.c:1:
	/usr/include/x86_64-linux-gnu/ffi.h:334:1: note: declared here
	  334 | ffi_prep_closure (ffi_closure*,
	      | ^~~~~~~~~~~~~~~~
	```

	Do not try ffi_closure_alloc if libffi is &lt;= 3.1

	Maybe due to e1855100e46040e73630b378974c17764e0cccee, CentOS, RHEL, and
	Fedora CIs have started failing with SEGV.  Try to avoid
	ffi_closure_alloc on those environments.

	https://rubyci.org/logs/rubyci.s3.amazonaws.com/centos8/ruby-master/log/20200512T183004Z.fail.html.gz
	https://rubyci.org/logs/rubyci.s3.amazonaws.com/fedora32/ruby-master/log/20200512T183004Z.fail.html.gz
	https://rubyci.org/logs/rubyci.s3.amazonaws.com/rhel8/ruby-master/log/20200512T183003Z.fail.html.gz

	ext/fiddle/extconf.rb: Fix the condition of libffi &lt;= 3.1

	ver is [3, 1, 0] which is not less then or equal to [3, 1]
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) f96216df8dfd2d1e206150572912289f4dda7386,0091fac1d8de07e86fef8315ba77609bed9dd7f5,04c704c5c967ea9bded6bf645439fe59c7d9f7d6,23655e6de5ee989feb8c65c7061fe9a71579dc54,7cb8904a12c850ee30dcd67817fa2f9dc3fee813,41168f69fbeb32cfc88210911d62e419b8116589,87f6154bb4c67ca77ee353bb1fe25a922036c0e5: [Backport #17202]</title>
<updated>2020-09-30T10:24:17+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@ruby-lang.org</email>
</author>
<published>2020-09-30T10:24:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=f46929833923d96e4dc706945fd537a1caaebe66'/>
<id>f46929833923d96e4dc706945fd537a1caaebe66</id>
<content type='text'>
	Remove "All Rights Reserved." from Copyright statement.

	Patch assembly so that it aligns properly

	Removed trailing spaces [ci skip]

	Fix build error on Apple silicon macOS

	This patch will fix following build error on macOS 11.0 + Xcode 12 beta.

	```
	$ ./configure
	$ make V=1
		BASERUBY = /Users/watson/.rbenv/shims/ruby --disable=gems
		CC = clang -fdeclspec
		LD = ld
		LDSHARED = clang -fdeclspec -dynamiclib
		CFLAGS = -O3 -ggdb3 -Wall -Wextra -Werror=deprecated-declarations -Werror=division-by-zero -Werror=implicit-function-declaration -Werror=implicit-int -Werror=misleading-indentation -Werror=pointer-arith -Werror=shorten-64-to-32 -Werror=write-strings -Wmissing-noreturn -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Werror=extra-tokens -std=gnu99  -pipe
		XCFLAGS = -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-strict-overflow -DRUBY_DEVEL=1 -fvisibility=hidden -DRUBY_EXPORT -fPIE -DCANONICALIZATION_FOR_MATHN -I. -I.ext/include/arm64-darwin20 -I./include -I. -I./enc/unicode/12.1.0
		CPPFLAGS = -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT
		DLDFLAGS = -Wl,-undefined,dynamic_lookup -Wl,-multiply_defined,suppress -fstack-protector-strong -Wl,-pie -framework Security -framework Foundation
		SOLIBS = -lpthread -ldl -lobjc
		LANG = ja_JP.UTF-8
		LC_ALL =
		LC_CTYPE =
		MFLAGS =
	Apple clang version 12.0.0 (clang-1200.0.22.19)
	Target: arm64-apple-darwin20.0.0
	Thread model: posix
	InstalledDir: /Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
	clang -fdeclspec -O3 -ggdb3 -Wall -Wextra -Werror=deprecated-declarations -Werror=division-by-zero -Werror=implicit-function-declaration -Werror=implicit-int -Werror=misleading-indentation -Werror=pointer-arith -Werror=shorten-64-to-32 -Werror=write-strings -Wmissing-noreturn -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Werror=extra-tokens -std=gnu99  -pipe  -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-strict-overflow -DRUBY_DEVEL=1 -fvisibility=hidden -DRUBY_EXPORT -fPIE -DCANONICALIZATION_FOR_MATHN -I. -I.ext/include/arm64-darwin20 -I./include -I. -I./enc/unicode/12.1.0 -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT    -o cont.o -c cont.c
	In file included from cont.c:19:
	./coroutine/ucontext/Context.h:32:5: error: 'getcontext' is deprecated: first deprecated in macOS 10.6 [-Werror,-Wdeprecated-declarations]
	    getcontext(&amp;context-&gt;state);
	    ^
	/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/ucontext.h:37:6: note: 'getcontext' has been
	      explicitly marked deprecated here
	int  getcontext(ucontext_t *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_2_0, __IPHONE_2_0) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
	     ^
	In file included from cont.c:19:
	./coroutine/ucontext/Context.h:51:5: error: 'makecontext' is deprecated: first deprecated in macOS 10.6 [-Werror,-Wdeprecated-declarations]
	    makecontext(&amp;context-&gt;state, (void(*)(void))coroutine_trampoline, 2, (void*)start, (void*)context);
	    ^
	/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/ucontext.h:38:6: note: 'makecontext' has been
	      explicitly marked deprecated here
	void makecontext(ucontext_t *, void (*)(), int, ...) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_2_0, __IPHONE_2_0) __WATCHOS_PROHI...
	     ^
	In file included from cont.c:19:
	./coroutine/ucontext/Context.h:59:5: error: 'swapcontext' is deprecated: first deprecated in macOS 10.6 [-Werror,-Wdeprecated-declarations]
	    swapcontext(&amp;current-&gt;state, &amp;target-&gt;state);
	    ^
	/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/ucontext.h:40:6: note: 'swapcontext' has been
	      explicitly marked deprecated here
	int  swapcontext(ucontext_t * __restrict, const ucontext_t * __restrict) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_2_0, __IPHONE_...
	     ^
	3 errors generated.
	make: *** [cont.o] Error 1
	```

	Extract correct processor name for ARM64 Macs

	Prefix export symbol prefix to coroutine_transfer

	Revert "Revert "[ruby/fiddle] Use ffi_closure_free by default.
	 (#20)""

	This reverts commit efd641ffab34e433a8d8a7d78914576f2425aa90.

	This changeset seems to be needed to suppress a warning on Ubuntu 20.04
	https://rubyci.org/logs/rubyci.s3.amazonaws.com/ubuntu/ruby-master/log/20200304T033004Z.log.html.gz
	```
	closure.c:264:5: warning: 'ffi_prep_closure' is deprecated: use ffi_prep_closure_loc instead [-Wdeprecated-declarations]
	  264 |     result = ffi_prep_closure(pcl, cif, callback, (void *)self);
	      |     ^~~~~~
	```

	I guess there was a reason why the commit was reverted (maybe some CIs
	failed?), so try it again.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	Remove "All Rights Reserved." from Copyright statement.

	Patch assembly so that it aligns properly

	Removed trailing spaces [ci skip]

	Fix build error on Apple silicon macOS

	This patch will fix following build error on macOS 11.0 + Xcode 12 beta.

	```
	$ ./configure
	$ make V=1
		BASERUBY = /Users/watson/.rbenv/shims/ruby --disable=gems
		CC = clang -fdeclspec
		LD = ld
		LDSHARED = clang -fdeclspec -dynamiclib
		CFLAGS = -O3 -ggdb3 -Wall -Wextra -Werror=deprecated-declarations -Werror=division-by-zero -Werror=implicit-function-declaration -Werror=implicit-int -Werror=misleading-indentation -Werror=pointer-arith -Werror=shorten-64-to-32 -Werror=write-strings -Wmissing-noreturn -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Werror=extra-tokens -std=gnu99  -pipe
		XCFLAGS = -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-strict-overflow -DRUBY_DEVEL=1 -fvisibility=hidden -DRUBY_EXPORT -fPIE -DCANONICALIZATION_FOR_MATHN -I. -I.ext/include/arm64-darwin20 -I./include -I. -I./enc/unicode/12.1.0
		CPPFLAGS = -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT
		DLDFLAGS = -Wl,-undefined,dynamic_lookup -Wl,-multiply_defined,suppress -fstack-protector-strong -Wl,-pie -framework Security -framework Foundation
		SOLIBS = -lpthread -ldl -lobjc
		LANG = ja_JP.UTF-8
		LC_ALL =
		LC_CTYPE =
		MFLAGS =
	Apple clang version 12.0.0 (clang-1200.0.22.19)
	Target: arm64-apple-darwin20.0.0
	Thread model: posix
	InstalledDir: /Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
	clang -fdeclspec -O3 -ggdb3 -Wall -Wextra -Werror=deprecated-declarations -Werror=division-by-zero -Werror=implicit-function-declaration -Werror=implicit-int -Werror=misleading-indentation -Werror=pointer-arith -Werror=shorten-64-to-32 -Werror=write-strings -Wmissing-noreturn -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Werror=extra-tokens -std=gnu99  -pipe  -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-strict-overflow -DRUBY_DEVEL=1 -fvisibility=hidden -DRUBY_EXPORT -fPIE -DCANONICALIZATION_FOR_MATHN -I. -I.ext/include/arm64-darwin20 -I./include -I. -I./enc/unicode/12.1.0 -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT    -o cont.o -c cont.c
	In file included from cont.c:19:
	./coroutine/ucontext/Context.h:32:5: error: 'getcontext' is deprecated: first deprecated in macOS 10.6 [-Werror,-Wdeprecated-declarations]
	    getcontext(&amp;context-&gt;state);
	    ^
	/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/ucontext.h:37:6: note: 'getcontext' has been
	      explicitly marked deprecated here
	int  getcontext(ucontext_t *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_2_0, __IPHONE_2_0) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
	     ^
	In file included from cont.c:19:
	./coroutine/ucontext/Context.h:51:5: error: 'makecontext' is deprecated: first deprecated in macOS 10.6 [-Werror,-Wdeprecated-declarations]
	    makecontext(&amp;context-&gt;state, (void(*)(void))coroutine_trampoline, 2, (void*)start, (void*)context);
	    ^
	/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/ucontext.h:38:6: note: 'makecontext' has been
	      explicitly marked deprecated here
	void makecontext(ucontext_t *, void (*)(), int, ...) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_2_0, __IPHONE_2_0) __WATCHOS_PROHI...
	     ^
	In file included from cont.c:19:
	./coroutine/ucontext/Context.h:59:5: error: 'swapcontext' is deprecated: first deprecated in macOS 10.6 [-Werror,-Wdeprecated-declarations]
	    swapcontext(&amp;current-&gt;state, &amp;target-&gt;state);
	    ^
	/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/ucontext.h:40:6: note: 'swapcontext' has been
	      explicitly marked deprecated here
	int  swapcontext(ucontext_t * __restrict, const ucontext_t * __restrict) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_2_0, __IPHONE_...
	     ^
	3 errors generated.
	make: *** [cont.o] Error 1
	```

	Extract correct processor name for ARM64 Macs

	Prefix export symbol prefix to coroutine_transfer

	Revert "Revert "[ruby/fiddle] Use ffi_closure_free by default.
	 (#20)""

	This reverts commit efd641ffab34e433a8d8a7d78914576f2425aa90.

	This changeset seems to be needed to suppress a warning on Ubuntu 20.04
	https://rubyci.org/logs/rubyci.s3.amazonaws.com/ubuntu/ruby-master/log/20200304T033004Z.log.html.gz
	```
	closure.c:264:5: warning: 'ffi_prep_closure' is deprecated: use ffi_prep_closure_loc instead [-Wdeprecated-declarations]
	  264 |     result = ffi_prep_closure(pcl, cif, callback, (void *)self);
	      |     ^~~~~~
	```

	I guess there was a reason why the commit was reverted (maybe some CIs
	failed?), so try it again.
</pre>
</div>
</content>
</entry>
<entry>
<title>Use osuosl instead of GitHub releases</title>
<updated>2020-03-13T13:23:12+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2020-03-07T11:42:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=fcaa00e58fd3a4cbaa19c6558783b43ee324d19e'/>
<id>fcaa00e58fd3a4cbaa19c6558783b43ee324d19e</id>
<content type='text'>
  Because the package provided by GitHub releases is different from sourceware.

(cherry picked from commit 47a1872cd8b901b8aab6dedce7fa3807c97d290d)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  Because the package provided by GitHub releases is different from sourceware.

(cherry picked from commit 47a1872cd8b901b8aab6dedce7fa3807c97d290d)
</pre>
</div>
</content>
</entry>
<entry>
<title>Switch to download libffi source package to github releases from sourceware.org</title>
<updated>2020-03-13T13:23:02+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2020-03-07T10:57:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=6a2d779027818eda418c9118f700b36816e833a5'/>
<id>6a2d779027818eda418c9118f700b36816e833a5</id>
<content type='text'>
[Bug #16681]
(cherry picked from commit 86022167461dc90b70164e2bb23316959bbfd6ba)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[Bug #16681]
(cherry picked from commit 86022167461dc90b70164e2bb23316959bbfd6ba)
</pre>
</div>
</content>
</entry>
<entry>
<title>Update dependencies</title>
<updated>2019-11-18T14:16:22+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2019-08-07T14:22:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=e1b234148829f65bea9f5ecc7018beb782ea6023'/>
<id>e1b234148829f65bea9f5ecc7018beb782ea6023</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[ruby/fiddle] Use ffi_closure_free by default. (#20)"</title>
<updated>2019-10-24T11:58:32+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2019-10-24T10:52:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=efd641ffab34e433a8d8a7d78914576f2425aa90'/>
<id>efd641ffab34e433a8d8a7d78914576f2425aa90</id>
<content type='text'>
This reverts commit ce6caade7c57a505f73086ccd7b33c14f7715f22.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit ce6caade7c57a505f73086ccd7b33c14f7715f22.
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/fiddle] Remove taint support (#21)</title>
<updated>2019-10-24T10:34:49+00:00</updated>
<author>
<name>Jeremy Evans</name>
<email>code@jeremyevans.net</email>
</author>
<published>2019-10-19T23:10:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=b809784817649817c3e53fa000f57504446caef9'/>
<id>b809784817649817c3e53fa000f57504446caef9</id>
<content type='text'>
Ruby 2.7 deprecates taint and it no longer has an effect.
The lack of taint support should not cause a problem in
previous Ruby versions.
https://github.com/ruby/fiddle/commit/18d6fb6915
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Ruby 2.7 deprecates taint and it no longer has an effect.
The lack of taint support should not cause a problem in
previous Ruby versions.
https://github.com/ruby/fiddle/commit/18d6fb6915
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/fiddle] Use ffi_closure_free by default. (#20)</title>
<updated>2019-10-24T10:34:43+00:00</updated>
<author>
<name>Vít Ondruch</name>
<email>v.ondruch@tiscali.cz</email>
</author>
<published>2019-07-10T21:19:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=ce6caade7c57a505f73086ccd7b33c14f7715f22'/>
<id>ce6caade7c57a505f73086ccd7b33c14f7715f22</id>
<content type='text'>
* Use ffi_closure_free unconditionally.

The current conditionals reflect historic heritage of FFI. Usage of
ffi_closure_free should be better default nowadays, because libffi 3.0.5
fixing issues of ffi_closure_free should be widely available.

* RUBY_LIBFFI_MODVERSION is not used anymore.

Because `ffi_closure_free()` is not used unconditionally, there is no
other use for RUBY_LIBFFI_MODVERSION define, so drop its usage.

* Use more meaningful variable name.

`ver` variable used to be used to pupulate RUBY_LIBFFI_MODVERSION
define. Since the define was removed, the `libffi_dir` variable name
should better describe the remaining usage of the variable.

https://github.com/ruby/fiddle/commit/c49cc79eb8
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Use ffi_closure_free unconditionally.

The current conditionals reflect historic heritage of FFI. Usage of
ffi_closure_free should be better default nowadays, because libffi 3.0.5
fixing issues of ffi_closure_free should be widely available.

* RUBY_LIBFFI_MODVERSION is not used anymore.

Because `ffi_closure_free()` is not used unconditionally, there is no
other use for RUBY_LIBFFI_MODVERSION define, so drop its usage.

* Use more meaningful variable name.

`ver` variable used to be used to pupulate RUBY_LIBFFI_MODVERSION
define. Since the define was removed, the `libffi_dir` variable name
should better describe the remaining usage of the variable.

https://github.com/ruby/fiddle/commit/c49cc79eb8
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/fiddle] Fiddle::Function must maintain a reference to the closure</title>
<updated>2019-10-24T10:34:15+00:00</updated>
<author>
<name>Aaron Patterson</name>
<email>aaron.patterson@gmail.com</email>
</author>
<published>2019-01-10T00:22:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=7733db665ad07980afcaa5bc3fadebc0128fbdf2'/>
<id>7733db665ad07980afcaa5bc3fadebc0128fbdf2</id>
<content type='text'>
If the first parameter to Fiddle::Function is a closure object (rather
than an interger), `rb_Integer` will cast it to an integer but not
maintain a reference to the closure.  Then if the closure gets GC'd, we
have a segv.  This commit keeps a reference to the original parameter to
initialize so that the object will not be GC'd.

Fixes: https://bugs.ruby-lang.org/issues/13286

https://github.com/ruby/fiddle/commit/0fc697bbc5
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If the first parameter to Fiddle::Function is a closure object (rather
than an interger), `rb_Integer` will cast it to an integer but not
maintain a reference to the closure.  Then if the closure gets GC'd, we
have a segv.  This commit keeps a reference to the original parameter to
initialize so that the object will not be GC'd.

Fixes: https://bugs.ruby-lang.org/issues/13286

https://github.com/ruby/fiddle/commit/0fc697bbc5
</pre>
</div>
</content>
</entry>
</feed>
