From: Eric Wong <e@80x24.org>
To: dtas-all@nongnu.org
Subject: [PATCH 1/4] require Ruby 2.3+
Date: Thu, 20 Jan 2022 18:34:16 +0000 [thread overview]
Message-ID: <20220120183419.2214-2-e@80x24.org> (raw)
In-Reply-To: <20220120183419.2214-1-e@80x24.org>
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')
next prev parent reply other threads:[~2022-01-20 23:33 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-20 18:34 [PATCH 0/4] require Ruby 2.3+, support Ruby 3.1 Eric Wong
2022-01-20 18:34 ` Eric Wong [this message]
2022-01-20 18:34 ` [PATCH 2/4] get rid of DTAS.dedupe_str wrapper Eric Wong
2022-01-20 18:34 ` [PATCH 3/4] move dtas-graph into script/, support Perl for dtas.sh Eric Wong
2022-01-20 18:34 ` [PATCH 4/4] use YAML.unsafe_load in Psych 4.x (Ruby 3.1+) Eric Wong
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://80x24.org/dtas/README
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220120183419.2214-2-e@80x24.org \
--to=e@80x24.org \
--cc=dtas-all@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/dtas.git/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).