[#72745] [Ruby trunk - Misc #11876] [Closed] Scheduled maintenance 2016/01/01 — shibata.hiroshi@...
Issue #11876 has been updated by Hiroshi SHIBATA.
shibata.hiroshi@gmail.com wrote:
[#72824] [Ruby trunk - Bug #11973] IO#advise should raise NotImplementedError on platforms that do not support that call — git@...
Issue #11973 has been updated by Chuck Remes.
[#72954] [Ruby trunk - Feature #12010] [Assigned] Exclude dot and dotdot from Dir#each — naruse@...
Issue #12010 has been reported by Yui NARUSE.
naruse@airemix.jp wrote:
[#73313] [Ruby trunk - Bug #12007] [Open] Newly added Unicode data file doesn't get downloaded — shugo@...
SXNzdWUgIzEyMDA3IGhhcyBiZWVuIHVwZGF0ZWQgYnkgU2h1Z28gTWFlZGEuCgpTdGF0dXMgY2hh
[#73372] [Ruby trunk - Misc #12004] Code of Conduct — benton@...
Issue #12004 has been updated by Benton Barnett.
On Sun, Jan 24, 2016 at 5:13 PM, <benton@bentonbarnett.com> wrote:
[#73421] [Ruby trunk - Misc #12004] Code of Conduct — nekocat432@...
Issue #12004 has been updated by Ruby Dino.
I=E2=80=99m sorry, but this, like the code of merit, is merely a derailing =
T24gMjAxNi8wMS8yNiAwMTozMiwgQXVzdGluIFppZWdsZXIgd3JvdGU6Cj4gSeKAmW0gc29ycnks
On Tue, Jan 26, 2016 at 12:25 AM, Martin J. D=C3=BCrst <duerst@it.aoyama.ac=
[#73491] [Ruby trunk - Misc #12004] Code of Conduct — git@...
Issue #12004 has been updated by Chuck Remes.
They will never provide any numbers because they are not engineers and they
Coraline is a panelist on Ruby rogues and a very well respected member of
OK, sorry for previous comment. Let's try this way.
On Tue, Jan 26, 2016 at 5:15 PM, Andrew Kirilenko <
[#73558] [Ruby trunk - Misc #12004] Code of Conduct — andrew.kirilenko@...
Issue #12004 has been updated by Andrew Kirilenko.
Andrew, please stop digging. Your hole is only getting deeper.
>Andrew, please stop digging. Your hole is only getting deeper.
[#73586] [Ruby trunk - Misc #12004] Code of Conduct — andrew@...
Issue #12004 has been updated by Andrew Vit.
[#73593] [Ruby trunk - Bug #12034] RegExp does not respect file encoding directive — nobu@...
Issue #12034 has been updated by Nobuyoshi Nakada.
[ruby-core:73476] [CommonRuby - Feature #8259] Atomic attributes accessors
Issue #8259 has been updated by Petr Chalupa.
This could be implemented in MRI faster than on other platforms. While MRI has GIL it can do normal comparison and assignment without any synchronisation, instead of synchronised CAS operation, assuming that the implementation of the operation is written in C to prevent thread switching.
----------------------------------------
Feature #8259: Atomic attributes accessors
https://bugs.ruby-lang.org/issues/8259#change-56700
* Author: Yura Sokolov
* Status: Open
* Priority: Normal
* Assignee:
----------------------------------------
Motivated by this gist ((<URL:https://gist.github.com/jstorimer/5298581>)) and atomic gem
I propose Class.attr_atomic which will add methods for atomic swap and CAS:
```ruby
class MyNode
attr_accessor :item
attr_atomic :successor
def initialize(item, successor)
@item = item
@successor = successor
end
end
node = MyNode.new(i, other_node)
# attr_atomic ensures at least #{attr} reader method exists. May be, it should
# be sure it does volatile access.
node.successor
# #{attr}_cas(old_value, new_value) do CAS: atomic compare and swap
if node.successor_cas(other_node, new_node)
print "there were no interleaving with other threads"
end
# #{attr}_swap atomically swaps value and returns old value.
# It ensures that no other thread interleaves getting old value and setting
# new one by cas (or other primitive if exists, like in Java 8)
node.successor_swap(new_node)
```
It will be very simple for MRI cause of GIL, and it will use atomic primitives for
other implementations.
Note: both (({#{attr}_swap})) and (({#{attr}_cas})) should raise an error if instance variable were not explicitly set before.
Example for nonblocking queue: ((<URL:https://gist.github.com/funny-falcon/5370416>))
Something similar should be proposed for Structs. May be override same method as (({Struct.attr_atomic}))
Open question for reader:
should (({attr_atomic :my_attr})) ensure that #my_attr reader method exists?
Should it guarantee that (({#my_attr})) provides 'volatile' access?
May be, (({attr_reader :my_attr})) already ought to provide 'volatile' semantic?
May be, semantic of (({@my_attr})) should have volatile semantic (i doubt for that)?
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>