[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 1/4] require Ruby 2.3+
From: |
Eric Wong |
Subject: |
[PATCH 1/4] require Ruby 2.3+ |
Date: |
Thu, 20 Jan 2022 18:34:16 +0000 |
This allows us to jettison a bunch of compatibility code since
we've started using Etc.nprocessors and String#- (uminus) in
more places. The Ruby core team doesn't support <= 2.5, even.
---
bin/dtas-partstats | 12 +++---------
bin/dtas-readahead | 3 +--
bin/dtas-sinkedit | 3 +--
bin/dtas-sourceedit | 3 +--
dtas.gemspec | 4 ++--
lib/dtas.rb | 13 ++-----------
lib/dtas/compat_onenine.rb | 17 -----------------
lib/dtas/partstats.rb | 3 +--
lib/dtas/pipeline.rb | 5 +----
lib/dtas/process.rb | 3 +--
lib/dtas/spawn_fix.rb | 10 ----------
test/test_player_integration.rb | 3 +--
test/test_splitfx.rb | 4 +---
13 files changed, 15 insertions(+), 68 deletions(-)
delete mode 100644 lib/dtas/compat_onenine.rb
delete mode 100644 lib/dtas/spawn_fix.rb
diff --git a/bin/dtas-partstats b/bin/dtas-partstats
index 884a6d1..6a0c9d4 100755
--- a/bin/dtas-partstats
+++ b/bin/dtas-partstats
@@ -1,5 +1,5 @@
#!/usr/bin/env ruby
-# Copyright (C) 2013-2020 all contributors <dtas-all@nongnu.org>
+# Copyright (C) all contributors <dtas-all@nongnu.org>
# License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
# frozen_string_literal: true
# TODO
@@ -8,17 +8,11 @@
# - configurable output formatting
# - Sequel/SQLite support
require 'dtas/partstats'
+require 'etc'
infile = ARGV[0] or abort "usage: #$0 INFILE"
ps = DTAS::PartStats.new(infile)
-def nproc
- require 'etc'
- Etc.nprocessors
-rescue NoMethodError
- `nproc 2>/dev/null || echo 2`.to_i
-end
-
-opts = { jobs: nproc }
+opts = { jobs: Etc.nprocessors }
stats = ps.run(opts)
headers = ps.key_idx.to_a
diff --git a/bin/dtas-readahead b/bin/dtas-readahead
index 3eedd86..a1971bd 100755
--- a/bin/dtas-readahead
+++ b/bin/dtas-readahead
@@ -1,5 +1,5 @@
#!/usr/bin/env ruby
-# Copyright (C) 2015-2020 all contributors <dtas-all@nongnu.org>
+# Copyright (C) all contributors <dtas-all@nongnu.org>
# License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
# frozen_string_literal: true
#
@@ -18,7 +18,6 @@
require 'dtas/process'
include DTAS::Process
-include DTAS::SpawnFix
trap(:CHLD) { DTAS::Process.reaper {} }
trap(:INT) { exit(0) }
trap(:TERM) { exit(0) }
diff --git a/bin/dtas-sinkedit b/bin/dtas-sinkedit
index 3393aac..8f96a97 100755
--- a/bin/dtas-sinkedit
+++ b/bin/dtas-sinkedit
@@ -1,5 +1,5 @@
#!/usr/bin/env ruby
-# Copyright (C) 2013-2020 all contributors <dtas-all@nongnu.org>
+# Copyright (C) all contributors <dtas-all@nongnu.org>
# License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
# frozen_string_literal: true
require 'optparse'
@@ -68,7 +68,6 @@
buf = $stdin.read
commit_update.call(buf)
else
- include DTAS::SpawnFix
tmp = tmpyaml
tmp_path = tmp.path
do_update = lambda { commit_update.call(File.read(tmp_path)) }
diff --git a/bin/dtas-sourceedit b/bin/dtas-sourceedit
index 23362c2..e6603bf 100755
--- a/bin/dtas-sourceedit
+++ b/bin/dtas-sourceedit
@@ -1,5 +1,5 @@
#!/usr/bin/env ruby
-# Copyright (C) 2013-2020 all contributors <dtas-all@nongnu.org>
+# Copyright (C) all contributors <dtas-all@nongnu.org>
# License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
# frozen_string_literal: true
require 'optparse'
@@ -55,7 +55,6 @@
buf = $stdin.read
commit_update.call(buf)
else
- include DTAS::SpawnFix
tmp = tmpyaml
tmp_path = tmp.path
do_update = lambda { commit_update.call(File.read(tmp_path)) }
diff --git a/dtas.gemspec b/dtas.gemspec
index 50ce370..e1bbb38 100644
--- a/dtas.gemspec
+++ b/dtas.gemspec
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2021 all contributors <dtas-all@nongnu.org>
+# Copyright (C) all contributors <dtas-all@nongnu.org>
# License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
Gem::Specification.new do |s|
manifest = File.read('.gem-manifest').split(/\n/)
@@ -12,5 +12,5 @@
s.files = manifest
s.homepage = 'https://80x24.org/dtas.git/about/'
s.licenses = "GPL-3.0+"
- s.required_ruby_version = '>= 1.9.3'
+ s.required_ruby_version = '>= 2.3'
end
diff --git a/lib/dtas.rb b/lib/dtas.rb
index 1eac704..eb8f49d 100644
--- a/lib/dtas.rb
+++ b/lib/dtas.rb
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2020 all contributors <dtas-all@nongnu.org>
+# Copyright (C) all contributors <dtas-all@nongnu.org>
# License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
# frozen_string_literal: true
@@ -9,15 +9,8 @@ module DTAS
# try to use the monotonic clock in Ruby >= 2.1, it is immune to clock
# offset adjustments and generates less garbage (Float vs Time object)
# :stopdoc:
- begin
+ def self.now # :nodoc:
::Process.clock_gettime(::Process::CLOCK_MONOTONIC)
- def self.now # :nodoc:
- ::Process.clock_gettime(::Process::CLOCK_MONOTONIC)
- end
- rescue NameError, NoMethodError
- def self.now # :nodoc:
- Time.now.to_f # Ruby <= 2.0
- end
end
@null = nil
@@ -48,7 +41,5 @@ def self.dedupe_str(str)
# :startdoc:
end
-require_relative 'dtas/compat_onenine'
-require_relative 'dtas/spawn_fix'
require_relative 'dtas/encoding'
DTAS.extend(DTAS::Encoding)
diff --git a/lib/dtas/compat_onenine.rb b/lib/dtas/compat_onenine.rb
deleted file mode 100644
index b65ea50..0000000
--- a/lib/dtas/compat_onenine.rb
+++ /dev/null
@@ -1,17 +0,0 @@
-# Copyright (C) 2013-2020 all contributors <dtas-all@nongnu.org>
-# License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
-
-# Make Ruby 1.9.3 look like Ruby 2.0.0 to us
-# This exists for Debian wheezy users using the stock Ruby 1.9.3 install.
-# We'll drop this interface when Debian wheezy (7.0) becomes unsupported.
-class String # :nodoc:
- def b # :nodoc:
- dup.force_encoding(Encoding::BINARY)
- end
-end unless String.method_defined?(:b)
-
-def IO # :nodoc:
- def self.pipe # :nodoc:
- super.each { |io| io.close_on_exec = true }
- end
-end if RUBY_VERSION.to_f <= 1.9
diff --git a/lib/dtas/partstats.rb b/lib/dtas/partstats.rb
index 45eff34..8e9ee95 100644
--- a/lib/dtas/partstats.rb
+++ b/lib/dtas/partstats.rb
@@ -1,5 +1,5 @@
# -*- encoding: binary -*-
-# Copyright (C) 2013-2020 all contributors <dtas-all@nongnu.org>
+# Copyright (C) all contributors <dtas-all@nongnu.org>
# License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
# frozen_string_literal: true
require_relative '../dtas'
@@ -11,7 +11,6 @@
class DTAS::PartStats # :nodoc:
CMD = 'sox "$INFILE" -n $TRIMFX $SOXFX stats $STATSOPTS'
include DTAS::Process
- include DTAS::SpawnFix
attr_reader :key_idx
attr_reader :key_width
diff --git a/lib/dtas/pipeline.rb b/lib/dtas/pipeline.rb
index eb2af89..1bebe87 100644
--- a/lib/dtas/pipeline.rb
+++ b/lib/dtas/pipeline.rb
@@ -1,12 +1,9 @@
-# Copyright (C) 2017-2020 all contributors <dtas-all@nongnu.org>
+# Copyright (C) all contributors <dtas-all@nongnu.org>
# License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
# frozen_string_literal: true
require_relative '../dtas'
-require_relative 'spawn_fix'
module DTAS::Pipeline # :nodoc:
- include DTAS::SpawnFix
-
# Process.spawn wrapper which supports running Proc-like objects in
# a separate process, not just external commands.
# Returns the pid of the spawned process
diff --git a/lib/dtas/process.rb b/lib/dtas/process.rb
index f93a8c4..d00716f 100644
--- a/lib/dtas/process.rb
+++ b/lib/dtas/process.rb
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2020 all contributors <dtas-all@nongnu.org>
+# Copyright (C) all contributors <dtas-all@nongnu.org>
# License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
# frozen_string_literal: true
require 'io/wait'
@@ -11,7 +11,6 @@
module DTAS::Process # :nodoc:
PIDS = {}
include DTAS::XS
- include DTAS::SpawnFix
def self.reaper
begin
diff --git a/lib/dtas/spawn_fix.rb b/lib/dtas/spawn_fix.rb
deleted file mode 100644
index b586130..0000000
--- a/lib/dtas/spawn_fix.rb
+++ /dev/null
@@ -1,10 +0,0 @@
-# Copyright (C) 2013-2020 all contributors <dtas-all@nongnu.org>
-# License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
-# workaround for older Rubies: https://bugs.ruby-lang.org/issues/8770
-module DTAS::SpawnFix # :nodoc:
- def spawn(*args)
- super(*args)
- rescue Errno::EINTR
- retry
- end if RUBY_VERSION.to_f <= 2.1
-end
diff --git a/test/test_player_integration.rb b/test/test_player_integration.rb
index d2e11cf..e933f7b 100644
--- a/test/test_player_integration.rb
+++ b/test/test_player_integration.rb
@@ -1,10 +1,9 @@
-# Copyright (C) 2013-2020 all contributors <dtas-all@nongnu.org>
+# Copyright (C) all contributors <dtas-all@nongnu.org>
# License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
# frozen_string_literal: true
require './test/player_integration'
class TestPlayerIntegration < Testcase
include PlayerIntegration
- include DTAS::SpawnFix
def test_cmd_rate
env = ENV.to_hash.merge(@fmt.to_env)
diff --git a/test/test_splitfx.rb b/test/test_splitfx.rb
index b6ae01f..cacda66 100644
--- a/test/test_splitfx.rb
+++ b/test/test_splitfx.rb
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2020 all contributors <dtas-all@nongnu.org>
+# Copyright (C) all contributors <dtas-all@nongnu.org>
# License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
# frozen_string_literal: true
require 'yaml'
@@ -7,8 +7,6 @@
require_relative 'helper'
class TestSplitfx < Testcase
- include DTAS::SpawnFix
-
def tmp_err(path)
err = $stderr.dup
$stderr.reopen(path, 'a')