<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/coroutine/arm32, 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) 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>Make fiber_pool more conservative on platforms with limited address space.</title>
<updated>2019-07-18T08:54:55+00:00</updated>
<author>
<name>Samuel Williams</name>
<email>samuel.williams@oriontransfer.co.nz</email>
</author>
<published>2019-07-16T04:11:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=001f187ed6539f320421d8893d2f3c8f584cc3a5'/>
<id>001f187ed6539f320421d8893d2f3c8f584cc3a5</id>
<content type='text'>
We use COROUTINE_LIMITED_ADDRESS_SPACE to select platforms where address
space is 32-bits or less. Fiber pool implementation enables more book
keeping, and reduces upper limits, in order to minimise address space
utilisation.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We use COROUTINE_LIMITED_ADDRESS_SPACE to select platforms where address
space is 32-bits or less. Fiber pool implementation enables more book
keeping, and reduces upper limits, in order to minimise address space
utilisation.
</pre>
</div>
</content>
</entry>
<entry>
<title>Restore updated implementation of arm32 coroutine code, but prefer ucontext.</title>
<updated>2019-06-26T10:02:28+00:00</updated>
<author>
<name>Samuel Williams</name>
<email>samuel.williams@oriontransfer.co.nz</email>
</author>
<published>2019-06-26T10:02:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=acb67472c7da459812aa9008cf8cfbedcdddea67'/>
<id>acb67472c7da459812aa9008cf8cfbedcdddea67</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "coroutine/arm32/Context.S: save/restore the registers via stack"</title>
<updated>2019-06-26T08:23:00+00:00</updated>
<author>
<name>Yusuke Endoh</name>
<email>mame@ruby-lang.org</email>
</author>
<published>2019-06-26T08:22:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=28eeaed8a9ec2557e8f8d42d8ab3e7cad310a8a9'/>
<id>28eeaed8a9ec2557e8f8d42d8ab3e7cad310a8a9</id>
<content type='text'>
This reverts commit 6df1814c08df93bbc0b3e7a73649bcf82e126064.

It caused a SEGV again:
https://rubyci.org/logs/rubyci.s3.amazonaws.com/scw-9d6766/ruby-master/log/20190626T051707Z.fail.html.gz
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 6df1814c08df93bbc0b3e7a73649bcf82e126064.

It caused a SEGV again:
https://rubyci.org/logs/rubyci.s3.amazonaws.com/scw-9d6766/ruby-master/log/20190626T051707Z.fail.html.gz
</pre>
</div>
</content>
</entry>
<entry>
<title>Add `ucontext` coroutine implementation for generic fallback.</title>
<updated>2019-06-26T08:19:53+00:00</updated>
<author>
<name>Samuel Williams</name>
<email>samuel.williams@oriontransfer.co.nz</email>
</author>
<published>2019-06-24T11:54:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=6c6bf9ffcbfeb8be9d9c342e7604b74ec819e88a'/>
<id>6c6bf9ffcbfeb8be9d9c342e7604b74ec819e88a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>coroutine/arm32/Context.S: save/restore the registers via stack</title>
<updated>2019-06-26T05:08:10+00:00</updated>
<author>
<name>Yusuke Endoh</name>
<email>mame@ruby-lang.org</email>
</author>
<published>2019-06-26T05:08:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=6df1814c08df93bbc0b3e7a73649bcf82e126064'/>
<id>6df1814c08df93bbc0b3e7a73649bcf82e126064</id>
<content type='text'>
Retry of 518adcca0a and dbe232e24e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Retry of 518adcca0a and dbe232e24e
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert 518adcca0a and dbe232e24e</title>
<updated>2019-06-25T14:32:26+00:00</updated>
<author>
<name>Yusuke Endoh</name>
<email>mame@ruby-lang.org</email>
</author>
<published>2019-06-25T14:31:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=730aeb2523fadd816b07e0e5322fb79841efc709'/>
<id>730aeb2523fadd816b07e0e5322fb79841efc709</id>
<content type='text'>
518adcca0a: "Try using arm32 implementation for fibers."
dbe232e24e: "Order of arguments might be incorrect in arm32 coroutine implementation."

It seems to cause SEGV consistently on Ubuntu armv7l eabihf:

https://rubyci.org/logs/rubyci.s3.amazonaws.com/scw-9d6766/ruby-master/log/20190625T081710Z.fail.html.gz
https://rubyci.org/logs/rubyci.s3.amazonaws.com/scw-9d6766/ruby-master/log/20190625T111708Z.fail.html.gz
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
518adcca0a: "Try using arm32 implementation for fibers."
dbe232e24e: "Order of arguments might be incorrect in arm32 coroutine implementation."

It seems to cause SEGV consistently on Ubuntu armv7l eabihf:

https://rubyci.org/logs/rubyci.s3.amazonaws.com/scw-9d6766/ruby-master/log/20190625T081710Z.fail.html.gz
https://rubyci.org/logs/rubyci.s3.amazonaws.com/scw-9d6766/ruby-master/log/20190625T111708Z.fail.html.gz
</pre>
</div>
</content>
</entry>
<entry>
<title>Order of arguments might be incorrect in arm32 coroutine implementation.</title>
<updated>2019-06-25T05:04:04+00:00</updated>
<author>
<name>Samuel Williams</name>
<email>samuel.williams@oriontransfer.co.nz</email>
</author>
<published>2019-06-25T05:04:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=dbe232e24e56cb200b8e5b78062c8a2784a792e9'/>
<id>dbe232e24e56cb200b8e5b78062c8a2784a792e9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Make COROUTINE_REGISTERS compile-time only not to be a global symbol</title>
<updated>2019-05-16T06:52:09+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2019-05-16T06:51:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=a160b2f56716f70fa3e485ae89875da48baefc1d'/>
<id>a160b2f56716f70fa3e485ae89875da48baefc1d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Change Makefile rule for assembly to use .S rather than .s</title>
<updated>2018-11-24T11:35:29+00:00</updated>
<author>
<name>samuel</name>
<email>samuel@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2018-11-24T11:35:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=e64f71f812324d098bed12ed68c2bc1d6e780c90'/>
<id>e64f71f812324d098bed12ed68c2bc1d6e780c90</id>
<content type='text'>
It is more conventional to use compiler to pre-process and
assemble the `.S` file rather than forcing Makefile to use `.s`.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65952 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It is more conventional to use compiler to pre-process and
assemble the `.S` file rather than forcing Makefile to use `.s`.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65952 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
</feed>
