mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Merge fiddle-1.0.0.beta2 from upstream.
* ext/fiddle/closure.c: use directly declaration for standalone gem without internal.h. * Specify frozen string literal is true. * Update gemspec configuration for release version. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59854 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
29c1321a84
commit
7f24b0aabd
24 changed files with 33 additions and 33 deletions
|
@ -1,6 +1,7 @@
|
||||||
#include <fiddle.h>
|
#include <fiddle.h>
|
||||||
#include <ruby/thread.h>
|
#include <ruby/thread.h>
|
||||||
#include "internal.h" /* rb_thread_has_gvl_p */
|
|
||||||
|
int ruby_thread_has_gvl_p(void); /* from internal.h */
|
||||||
|
|
||||||
VALUE cFiddleClosure;
|
VALUE cFiddleClosure;
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# frozen_string_literal: false
|
# frozen_string_literal: true
|
||||||
require 'mkmf'
|
require 'mkmf'
|
||||||
|
|
||||||
# :stopdoc:
|
# :stopdoc:
|
||||||
|
@ -41,12 +41,12 @@ begin
|
||||||
libffi.lib = "#{libffi.builddir}/.libs"
|
libffi.lib = "#{libffi.builddir}/.libs"
|
||||||
libffi.a = "#{libffi.lib}/libffi_convenience.#{$LIBEXT}"
|
libffi.a = "#{libffi.lib}/libffi_convenience.#{$LIBEXT}"
|
||||||
nowarn = CONFIG.merge("warnflags"=>"")
|
nowarn = CONFIG.merge("warnflags"=>"")
|
||||||
libffi.cflags = RbConfig.expand("$(CFLAGS)", nowarn)
|
libffi.cflags = RbConfig.expand("$(CFLAGS)".dup, nowarn)
|
||||||
ver = ver[/libffi-(.*)/, 1]
|
ver = ver[/libffi-(.*)/, 1]
|
||||||
|
|
||||||
FileUtils.mkdir_p(libffi.dir)
|
FileUtils.mkdir_p(libffi.dir)
|
||||||
libffi.opt = CONFIG['configure_args'][/'(-C)'/, 1]
|
libffi.opt = CONFIG['configure_args'][/'(-C)'/, 1]
|
||||||
libffi.ldflags = RbConfig.expand("$(LDFLAGS) #{libpathflag([relative_from($topdir, "..")])} #{$LIBRUBYARG}")
|
libffi.ldflags = RbConfig.expand("$(LDFLAGS) #{libpathflag([relative_from($topdir, "..")])} #{$LIBRUBYARG}".dup)
|
||||||
libffi.arch = RbConfig::CONFIG['host']
|
libffi.arch = RbConfig::CONFIG['host']
|
||||||
if $mswin
|
if $mswin
|
||||||
unless find_executable(as = /x64/ =~ libffi.arch ? "ml64" : "ml")
|
unless find_executable(as = /x64/ =~ libffi.arch ? "ml64" : "ml")
|
||||||
|
@ -77,7 +77,7 @@ begin
|
||||||
args << libffi.opt if libffi.opt
|
args << libffi.opt if libffi.opt
|
||||||
args.concat %W[
|
args.concat %W[
|
||||||
CC=#{cc} CFLAGS=#{libffi.cflags}
|
CC=#{cc} CFLAGS=#{libffi.cflags}
|
||||||
CXX=#{cxx} CXXFLAGS=#{RbConfig.expand("$(CXXFLAGS)", nowarn)}
|
CXX=#{cxx} CXXFLAGS=#{RbConfig.expand("$(CXXFLAGS)".dup, nowarn)}
|
||||||
LD=#{ld} LDFLAGS=#{libffi.ldflags}
|
LD=#{ld} LDFLAGS=#{libffi.ldflags}
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
Gem::Specification.new do |spec|
|
Gem::Specification.new do |spec|
|
||||||
spec.name = "fiddle"
|
spec.name = "fiddle"
|
||||||
spec.version = '1.0.0.beta1'
|
spec.version = '1.0.0.beta2'
|
||||||
spec.authors = ["Aaron Patterson", "SHIBATA Hiroshi"]
|
spec.authors = ["Aaron Patterson", "SHIBATA Hiroshi"]
|
||||||
spec.email = ["aaron@tenderlovemaking.com", "hsbt@ruby-lang.org"]
|
spec.email = ["aaron@tenderlovemaking.com", "hsbt@ruby-lang.org"]
|
||||||
|
|
||||||
spec.summary = %q{A libffi wrapper for Ruby.}
|
spec.summary = %q{A libffi wrapper for Ruby.}
|
||||||
spec.description = %q{A libffi wrapper for Ruby.}
|
spec.description = %q{A libffi wrapper for Ruby.}
|
||||||
spec.homepage = "https://github.com/ruby/fiddle"
|
spec.homepage = "https://github.com/ruby/fiddle"
|
||||||
spec.license = "MIT"
|
spec.license = "BSD-2-Clause"
|
||||||
|
|
||||||
spec.files = [".gitignore", ".travis.yml", "Gemfile", "LICENSE.txt", "README.md", "Rakefile", "bin/console", "bin/setup", "ext/fiddle/closure.c", "ext/fiddle/closure.h", "ext/fiddle/conversions.c", "ext/fiddle/conversions.h", "ext/fiddle/extconf.rb", "ext/fiddle/extlibs", "ext/fiddle/fiddle.c", "ext/fiddle/fiddle.h", "ext/fiddle/function.c", "ext/fiddle/function.h", "ext/fiddle/handle.c", "ext/fiddle/pointer.c", "ext/fiddle/win32/fficonfig.h", "ext/fiddle/win32/libffi-3.2.1-mswin.patch", "ext/fiddle/win32/libffi-config.rb", "ext/fiddle/win32/libffi.mk.tmpl", "fiddle.gemspec", "lib/fiddle.rb", "lib/fiddle/closure.rb", "lib/fiddle/cparser.rb", "lib/fiddle/function.rb", "lib/fiddle/import.rb", "lib/fiddle/pack.rb", "lib/fiddle/struct.rb", "lib/fiddle/types.rb", "lib/fiddle/value.rb"]
|
spec.files = [".gitignore", ".travis.yml", "Gemfile", "LICENSE.txt", "README.md", "Rakefile", "bin/console", "bin/setup", "ext/fiddle/closure.c", "ext/fiddle/closure.h", "ext/fiddle/conversions.c", "ext/fiddle/conversions.h", "ext/fiddle/extconf.rb", "ext/fiddle/extlibs", "ext/fiddle/fiddle.c", "ext/fiddle/fiddle.h", "ext/fiddle/function.c", "ext/fiddle/function.h", "ext/fiddle/handle.c", "ext/fiddle/pointer.c", "ext/fiddle/win32/fficonfig.h", "ext/fiddle/win32/libffi-3.2.1-mswin.patch", "ext/fiddle/win32/libffi-config.rb", "ext/fiddle/win32/libffi.mk.tmpl", "fiddle.gemspec", "lib/fiddle.rb", "lib/fiddle/closure.rb", "lib/fiddle/cparser.rb", "lib/fiddle/function.rb", "lib/fiddle/import.rb", "lib/fiddle/pack.rb", "lib/fiddle/struct.rb", "lib/fiddle/types.rb", "lib/fiddle/value.rb"]
|
||||||
spec.bindir = "exe"
|
spec.bindir = "exe"
|
||||||
|
@ -17,6 +17,5 @@ Gem::Specification.new do |spec|
|
||||||
|
|
||||||
spec.add_development_dependency "bundler"
|
spec.add_development_dependency "bundler"
|
||||||
spec.add_development_dependency "rake"
|
spec.add_development_dependency "rake"
|
||||||
spec.add_development_dependency "minitest", "~> 4.0"
|
|
||||||
spec.add_development_dependency "rake-compiler"
|
spec.add_development_dependency "rake-compiler"
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# frozen_string_literal: false
|
# frozen_string_literal: true
|
||||||
require 'fiddle.so'
|
require 'fiddle.so'
|
||||||
require 'fiddle/function'
|
require 'fiddle/function'
|
||||||
require 'fiddle/closure'
|
require 'fiddle/closure'
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# frozen_string_literal: false
|
# frozen_string_literal: true
|
||||||
module Fiddle
|
module Fiddle
|
||||||
class Closure
|
class Closure
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# frozen_string_literal: false
|
# frozen_string_literal: true
|
||||||
module Fiddle
|
module Fiddle
|
||||||
# A mixin that provides methods for parsing C struct and prototype signatures.
|
# A mixin that provides methods for parsing C struct and prototype signatures.
|
||||||
#
|
#
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# frozen_string_literal: false
|
# frozen_string_literal: true
|
||||||
module Fiddle
|
module Fiddle
|
||||||
class Function
|
class Function
|
||||||
# The ABI of the Function.
|
# The ABI of the Function.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# frozen_string_literal: false
|
# frozen_string_literal: true
|
||||||
require 'fiddle'
|
require 'fiddle'
|
||||||
require 'fiddle/struct'
|
require 'fiddle/struct'
|
||||||
require 'fiddle/cparser'
|
require 'fiddle/cparser'
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# frozen_string_literal: false
|
# frozen_string_literal: true
|
||||||
require 'fiddle'
|
require 'fiddle'
|
||||||
|
|
||||||
module Fiddle
|
module Fiddle
|
||||||
|
@ -101,7 +101,7 @@ module Fiddle
|
||||||
private
|
private
|
||||||
|
|
||||||
def parse_types(types)
|
def parse_types(types)
|
||||||
@template = ""
|
@template = "".dup
|
||||||
addr = 0
|
addr = 0
|
||||||
types.each{|t|
|
types.each{|t|
|
||||||
orig_addr = addr
|
orig_addr = addr
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# frozen_string_literal: false
|
# frozen_string_literal: true
|
||||||
require 'fiddle'
|
require 'fiddle'
|
||||||
require 'fiddle/value'
|
require 'fiddle/value'
|
||||||
require 'fiddle/pack'
|
require 'fiddle/pack'
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# frozen_string_literal: false
|
# frozen_string_literal: true
|
||||||
module Fiddle
|
module Fiddle
|
||||||
# Adds Windows type aliases to the including class for use with
|
# Adds Windows type aliases to the including class for use with
|
||||||
# Fiddle::Importer.
|
# Fiddle::Importer.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# frozen_string_literal: false
|
# frozen_string_literal: true
|
||||||
require 'fiddle'
|
require 'fiddle'
|
||||||
|
|
||||||
module Fiddle
|
module Fiddle
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#!/usr/bin/ruby
|
#!/usr/bin/ruby
|
||||||
# frozen_string_literal: false
|
# frozen_string_literal: true
|
||||||
require 'fileutils'
|
require 'fileutils'
|
||||||
|
|
||||||
basedir = File.dirname(__FILE__)
|
basedir = File.dirname(__FILE__)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# frozen_string_literal: false
|
# frozen_string_literal: true
|
||||||
require 'test/unit'
|
require 'test/unit'
|
||||||
require 'fiddle'
|
require 'fiddle'
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# frozen_string_literal: false
|
# frozen_string_literal: true
|
||||||
begin
|
begin
|
||||||
require_relative 'helper'
|
require_relative 'helper'
|
||||||
require 'fiddle/struct'
|
require 'fiddle/struct'
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# frozen_string_literal: false
|
# frozen_string_literal: true
|
||||||
begin
|
begin
|
||||||
require_relative 'helper'
|
require_relative 'helper'
|
||||||
require 'fiddle/struct'
|
require 'fiddle/struct'
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# frozen_string_literal: false
|
# frozen_string_literal: true
|
||||||
begin
|
begin
|
||||||
require_relative 'helper'
|
require_relative 'helper'
|
||||||
rescue LoadError
|
rescue LoadError
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# frozen_string_literal: false
|
# frozen_string_literal: true
|
||||||
begin
|
begin
|
||||||
require_relative 'helper'
|
require_relative 'helper'
|
||||||
require 'fiddle/cparser'
|
require 'fiddle/cparser'
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# frozen_string_literal: false
|
# frozen_string_literal: true
|
||||||
begin
|
begin
|
||||||
require_relative 'helper'
|
require_relative 'helper'
|
||||||
rescue LoadError
|
rescue LoadError
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# frozen_string_literal: false
|
# frozen_string_literal: true
|
||||||
begin
|
begin
|
||||||
require_relative 'helper'
|
require_relative 'helper'
|
||||||
rescue LoadError
|
rescue LoadError
|
||||||
|
@ -16,7 +16,7 @@ module Fiddle
|
||||||
assert_raise(SecurityError) do
|
assert_raise(SecurityError) do
|
||||||
Thread.new {
|
Thread.new {
|
||||||
$SAFE = 1
|
$SAFE = 1
|
||||||
f.call("uname -rs".taint)
|
f.call("uname -rs".dup.taint)
|
||||||
}.join
|
}.join
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# frozen_string_literal: false
|
# frozen_string_literal: true
|
||||||
begin
|
begin
|
||||||
require_relative 'helper'
|
require_relative 'helper'
|
||||||
rescue LoadError
|
rescue LoadError
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# frozen_string_literal: false
|
# frozen_string_literal: true
|
||||||
begin
|
begin
|
||||||
require_relative 'helper'
|
require_relative 'helper'
|
||||||
rescue LoadError
|
rescue LoadError
|
||||||
|
@ -11,7 +11,7 @@ module Fiddle
|
||||||
def test_safe_handle_open
|
def test_safe_handle_open
|
||||||
t = Thread.new do
|
t = Thread.new do
|
||||||
$SAFE = 1
|
$SAFE = 1
|
||||||
Fiddle::Handle.new(LIBC_SO.taint)
|
Fiddle::Handle.new(LIBC_SO.dup.taint)
|
||||||
end
|
end
|
||||||
assert_raise(SecurityError) { t.value }
|
assert_raise(SecurityError) { t.value }
|
||||||
end
|
end
|
||||||
|
@ -20,7 +20,7 @@ module Fiddle
|
||||||
t = Thread.new do
|
t = Thread.new do
|
||||||
h = Fiddle::Handle.new(LIBC_SO)
|
h = Fiddle::Handle.new(LIBC_SO)
|
||||||
$SAFE = 1
|
$SAFE = 1
|
||||||
h["qsort".taint]
|
h["qsort".dup.taint]
|
||||||
end
|
end
|
||||||
assert_raise(SecurityError) { t.value }
|
assert_raise(SecurityError) { t.value }
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# coding: US-ASCII
|
# coding: US-ASCII
|
||||||
# frozen_string_literal: false
|
# frozen_string_literal: true
|
||||||
begin
|
begin
|
||||||
require_relative 'helper'
|
require_relative 'helper'
|
||||||
require 'fiddle/import'
|
require 'fiddle/import'
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# frozen_string_literal: false
|
# frozen_string_literal: true
|
||||||
begin
|
begin
|
||||||
require_relative 'helper'
|
require_relative 'helper'
|
||||||
rescue LoadError
|
rescue LoadError
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue