{"action":"created","issue":{"url":"https://api.github.com/repos/hamstergem/hamster/issues/167","labels_url":"https://api.github.com/repos/hamstergem/hamster/issues/167/labels{/name}","comments_url":"https://api.github.com/repos/hamstergem/hamster/issues/167/comments","events_url":"https://api.github.com/repos/hamstergem/hamster/issues/167/events","html_url":"https://github.com/hamstergem/hamster/issues/167","id":66471173,"number":167,"title":"'atomic' gem is deprecated; use 'concurrent-ruby' instead","user":{"login":"roryokane","id":79168,"avatar_url":"https://avatars.githubusercontent.com/u/79168?v=3","gravatar_id":"","url":"https://api.github.com/users/roryokane","html_url":"https://github.com/roryokane","followers_url":"https://api.github.com/users/roryokane/followers","following_url":"https://api.github.com/users/roryokane/following{/other_user}","gists_url":"https://api.github.com/users/roryokane/gists{/gist_id}","starred_url":"https://api.github.com/users/roryokane/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roryokane/subscriptions","organizations_url":"https://api.github.com/users/roryokane/orgs","repos_url":"https://api.github.com/users/roryokane/repos","events_url":"https://api.github.com/users/roryokane/events{/privacy}","received_events_url":"https://api.github.com/users/roryokane/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-04-05T19:02:49Z","updated_at":"2015-04-05T19:26:30Z","closed_at":null,"body":"I notice that [`hamster.gemspec` includes the `atomic` gem](https://github.com/hamstergem/hamster/blob/e32a799ca14223a99c47488822defdb5a189f1af/hamster.gemspec#L24):\r\n\r\n```ruby\r\nspec.add_runtime_dependency     \"atomic\", \"~> 1.1\"\r\n```\r\n\r\nThe [`atomic` gem](https://rubygems.org/gems/atomic/) repository seems to be [github.com/ruby-concurrency/atomic](https://github.com/ruby-concurrency/atomic). Their README has this message:\r\n\r\n> This gem has been deprecated in lieu of [Concurrent Ruby](http://www.concurrent-ruby.com/). This gem will be retained in GitHub and Rubygems.org indefinitely but no new development will occur, including updates to support new versions of Ruby, JRuby, and Java. All users of this gem are encouraged to update their projects to use `concurrent-ruby` instead.\r\n\r\nSo you may want to update your use of `atomic` to avoid potential incompatibilities with future Ruby versions.\r\n\r\n[`atomic`’s README](https://github.com/ruby-concurrency/atomic#deprecated) shows that at least in some cases, it is as simple as renaming your use of `atomic` and `Atomic`:\r\n\r\n> ```ruby\r\n> # old way\r\n> require 'atomic'\r\n> my_atomic = Atomic.new(0)\r\n> \r\n> # new way\r\n> require 'concurrent'\r\n> my_atomic = Concurrent::Atomic.new(0)\r\n> ```"},"comment":{"url":"https://api.github.com/repos/hamstergem/hamster/issues/comments/89836927","html_url":"https://github.com/hamstergem/hamster/issues/167#issuecomment-89836927","issue_url":"https://api.github.com/repos/hamstergem/hamster/issues/167","id":89836927,"user":{"login":"alexdowad","id":1067359,"avatar_url":"https://avatars.githubusercontent.com/u/1067359?v=3","gravatar_id":"","url":"https://api.github.com/users/alexdowad","html_url":"https://github.com/alexdowad","followers_url":"https://api.github.com/users/alexdowad/followers","following_url":"https://api.github.com/users/alexdowad/following{/other_user}","gists_url":"https://api.github.com/users/alexdowad/gists{/gist_id}","starred_url":"https://api.github.com/users/alexdowad/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alexdowad/subscriptions","organizations_url":"https://api.github.com/users/alexdowad/orgs","repos_url":"https://api.github.com/users/alexdowad/repos","events_url":"https://api.github.com/users/alexdowad/events{/privacy}","received_events_url":"https://api.github.com/users/alexdowad/received_events","type":"User","site_admin":false},"created_at":"2015-04-05T19:26:30Z","updated_at":"2015-04-05T19:26:30Z","body":"Hmm. Thanks for bringing this point up.\r\n\r\nI hate to pull in the whole `concurrent` library, which is quite large, for this one teeny-tiny little thing. If you ever have a look at the implementation of `Atomic`, you will see it is positively trivial. But vendoring our own version of `Atomic` would also be a pain.\r\n\r\nIn our case, we use `Atomic` to make sure that each node of a lazy list will be only be realized once, on one thread. In some cases, the code which is used to realize a lazy list may have side effects, so this is important.\r\n\r\nWhat do others think about this issue?"}}