RubyInline 3.12.5 → 3.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/History.txt +16 -0
- data/Rakefile +3 -2
- data/example.rb +5 -5
- data/example2.rb +2 -0
- data/lib/inline.rb +8 -7
- data/test/test_inline.rb +0 -12
- data/tutorial/example1.rb +3 -3
- data/tutorial/example2.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +19 -17
- metadata.gz.sig +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6fb686fe259ea5574fa2a1f00e0a6d7dc4e1d8a7aa3c1ba44b5f2fd07951962c
|
4
|
+
data.tar.gz: af619f2046cbbb045a242aa0b6292953e98cbb917244587e026d8a27e32fe9a5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ab7bb820deb6412c42493a8efb50e60cdcb7d3bc5ce0c6f0918efeb253c6621f3b49eb9d325d90bc968ee9a98aa011346665a16785ad2a2f438e7eeddc894448
|
7
|
+
data.tar.gz: f79d57058eef27a84ee713d108cff2acdb38b69a8a167825e673c773cc8a8cb20ad25b4c9b6af31574c16526d20870bf237eced0e0e35cd44da9ba373b16712b
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/History.txt
CHANGED
@@ -1,3 +1,19 @@
|
|
1
|
+
=== 3.13.0 / 2023-01-31
|
2
|
+
|
3
|
+
* 1 minor enhancement:
|
4
|
+
|
5
|
+
* Error out if current ruby isn't configured for ENABLE_SHARED.
|
6
|
+
|
7
|
+
* 1 bug fix:
|
8
|
+
|
9
|
+
* Clean up examples. C++ warns about ANYARGS deprecation. Gonna have to sit with it for now.
|
10
|
+
|
11
|
+
=== 3.12.6 / 2022-05-23
|
12
|
+
|
13
|
+
* 1 bug fix:
|
14
|
+
|
15
|
+
* Removed rubinius support. LOL.
|
16
|
+
|
1
17
|
=== 3.12.5 / 2019-10-08
|
2
18
|
|
3
19
|
* 1 bug fix:
|
data/Rakefile
CHANGED
@@ -23,11 +23,12 @@ task :test => :clean
|
|
23
23
|
|
24
24
|
desc "run all examples"
|
25
25
|
task :examples do
|
26
|
-
%w(example.rb
|
26
|
+
%w(example.rb
|
27
|
+
example2.rb
|
27
28
|
tutorial/example1.rb
|
28
29
|
tutorial/example2.rb).each do |e|
|
29
30
|
rm_rf '~/.ruby_inline'
|
30
|
-
ruby "-Ilib -w #{e}"
|
31
|
+
ruby "-Ilib -I#{Hoe.include_dirs.first} -w #{e}"
|
31
32
|
end
|
32
33
|
end
|
33
34
|
|
data/example.rb
CHANGED
@@ -55,31 +55,31 @@ end
|
|
55
55
|
puts "# of iterations = #{max}, n = #{n}"
|
56
56
|
Benchmark::bm(20) do |x|
|
57
57
|
x.report("null_time") do
|
58
|
-
|
58
|
+
max.times do
|
59
59
|
# do nothing
|
60
60
|
end
|
61
61
|
end
|
62
62
|
|
63
63
|
x.report("c") do
|
64
|
-
|
64
|
+
max.times do
|
65
65
|
validate(t.factorial_c(n), m)
|
66
66
|
end
|
67
67
|
end
|
68
68
|
|
69
69
|
x.report("c-raw") do
|
70
|
-
|
70
|
+
max.times do
|
71
71
|
validate(t.factorial_c_raw(n), m)
|
72
72
|
end
|
73
73
|
end
|
74
74
|
|
75
75
|
x.report("c-alias") do
|
76
|
-
|
76
|
+
max.times do
|
77
77
|
validate(t.factorial_alias(n), m)
|
78
78
|
end
|
79
79
|
end
|
80
80
|
|
81
81
|
x.report("pure ruby") do
|
82
|
-
|
82
|
+
max.times do
|
83
83
|
validate(t.factorial(n), m)
|
84
84
|
end
|
85
85
|
end
|
data/example2.rb
CHANGED
@@ -10,11 +10,13 @@ require 'inline'
|
|
10
10
|
class MyTest
|
11
11
|
|
12
12
|
inline do |builder|
|
13
|
+
builder.include_ruby_last
|
13
14
|
|
14
15
|
builder.add_compile_flags %q(-x c++)
|
15
16
|
builder.add_link_flags %q(-lstdc++)
|
16
17
|
|
17
18
|
builder.include "<iostream>"
|
19
|
+
builder.include '"ruby/version.h"'
|
18
20
|
|
19
21
|
builder.c "
|
20
22
|
static
|
data/lib/inline.rb
CHANGED
@@ -65,17 +65,12 @@ class CompilationError < RuntimeError; end
|
|
65
65
|
# the current namespace.
|
66
66
|
|
67
67
|
module Inline
|
68
|
-
VERSION = "3.
|
68
|
+
VERSION = "3.13.0"
|
69
69
|
|
70
70
|
WINDOZE = /mswin|mingw/ =~ RUBY_PLATFORM
|
71
|
-
RUBINIUS = defined? RUBY_ENGINE
|
72
71
|
DEV_NULL = (WINDOZE ? 'nul' : '/dev/null')
|
73
72
|
GEM = 'gem'
|
74
|
-
RAKE =
|
75
|
-
File.join(Gem.bindir, 'rake')
|
76
|
-
else
|
77
|
-
"#{Gem.ruby} -S rake"
|
78
|
-
end
|
73
|
+
RAKE = "#{Gem.ruby} -S rake"
|
79
74
|
|
80
75
|
warn "RubyInline v #{VERSION}" if $DEBUG
|
81
76
|
|
@@ -559,6 +554,9 @@ VALUE #{method}_equals(VALUE value) {
|
|
559
554
|
end
|
560
555
|
|
561
556
|
if recompile then
|
557
|
+
unless RbConfig::CONFIG["ENABLE_SHARED"] == "yes" then
|
558
|
+
raise "this ruby isn't configured for dynamic linking"
|
559
|
+
end
|
562
560
|
|
563
561
|
hdrdir = %w(srcdir includedir archdir rubyhdrdir).map { |name|
|
564
562
|
RbConfig::CONFIG[name]
|
@@ -567,6 +565,9 @@ VALUE #{method}_equals(VALUE value) {
|
|
567
565
|
} or abort "ERROR: Can't find header dir for ruby. Exiting..."
|
568
566
|
|
569
567
|
flags = @flags.join(' ')
|
568
|
+
|
569
|
+
@libs << RbConfig::CONFIG['LIBRUBYARG_SHARED']
|
570
|
+
|
570
571
|
libs = @libs.join(' ')
|
571
572
|
|
572
573
|
config_hdrdir = if RbConfig::CONFIG['rubyarchhdrdir'] then
|
data/test/test_inline.rb
CHANGED
@@ -870,8 +870,6 @@ extern \"C\" {
|
|
870
870
|
end
|
871
871
|
|
872
872
|
def test_build_good
|
873
|
-
skip "https://github.com/MagLev/maglev/issues/231" if maglev?
|
874
|
-
|
875
873
|
code = util_simple_code(:DumbTest1, "long dumbpi() { return 314; }")
|
876
874
|
util_test_build(code) do
|
877
875
|
result = DumbTest1.new.dumbpi
|
@@ -982,8 +980,6 @@ EOR
|
|
982
980
|
|
983
981
|
class TestModule < InlineTestCase
|
984
982
|
def test_nested
|
985
|
-
skip "https://github.com/MagLev/maglev/issues/231" if maglev?
|
986
|
-
|
987
983
|
Object.class_eval $test_module_code
|
988
984
|
fb = Foo::Bar.new
|
989
985
|
assert_equal(42, fb.forty_two_instance)
|
@@ -1004,16 +1000,12 @@ class TestModule < InlineTestCase
|
|
1004
1000
|
end
|
1005
1001
|
|
1006
1002
|
def test_argument_check_good
|
1007
|
-
skip "https://github.com/MagLev/maglev/issues/231" if maglev?
|
1008
|
-
|
1009
1003
|
util_arity_check
|
1010
1004
|
fb = Foo::Bar.new
|
1011
1005
|
assert_equal 13, fb.arity6(1, 2, 3, 4, 5, "blah")
|
1012
1006
|
end
|
1013
1007
|
|
1014
1008
|
def test_argument_check_fewer
|
1015
|
-
skip "https://github.com/MagLev/maglev/issues/231" if maglev?
|
1016
|
-
|
1017
1009
|
util_arity_check
|
1018
1010
|
fb = Foo::Bar.new
|
1019
1011
|
|
@@ -1023,8 +1015,6 @@ class TestModule < InlineTestCase
|
|
1023
1015
|
end
|
1024
1016
|
|
1025
1017
|
def test_argument_check_more
|
1026
|
-
skip "https://github.com/MagLev/maglev/issues/231" if maglev?
|
1027
|
-
|
1028
1018
|
util_arity_check
|
1029
1019
|
fb = Foo::Bar.new
|
1030
1020
|
assert_raises ArgumentError do
|
@@ -1033,8 +1023,6 @@ class TestModule < InlineTestCase
|
|
1033
1023
|
end
|
1034
1024
|
|
1035
1025
|
def test_inline
|
1036
|
-
skip "https://github.com/MagLev/maglev/issues/231" if maglev?
|
1037
|
-
|
1038
1026
|
self.class.inline(:C) do |builder|
|
1039
1027
|
builder.c "int add(int a, int b) { return a + b; }"
|
1040
1028
|
end
|
data/tutorial/example1.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
# We started out with some code that averaged a ton of numbers in a
|
4
4
|
# bunch of arrays. Once we finally lost our patience with the average
|
5
5
|
# running time of the code, we decided to profile and optimize it
|
6
|
-
# using RubyInline.
|
6
|
+
# using RubyInline.
|
7
7
|
|
8
8
|
class Array
|
9
9
|
|
@@ -20,7 +20,7 @@ max_size = (ARGV.shift || 100_000).to_i
|
|
20
20
|
a = (1..max_size).to_a
|
21
21
|
|
22
22
|
1.upto(max_loop) do
|
23
|
-
|
23
|
+
a.average
|
24
24
|
$stderr.print "."
|
25
25
|
end
|
26
26
|
$stderr.puts ""
|
@@ -34,7 +34,7 @@ $stderr.puts ""
|
|
34
34
|
|
35
35
|
# & time ruby ./example1.rb 5 100000
|
36
36
|
# .....
|
37
|
-
#
|
37
|
+
#
|
38
38
|
# real 0m4.580s
|
39
39
|
# user 0m3.310s
|
40
40
|
# sys 0m0.090s
|
data/tutorial/example2.rb
CHANGED
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,18 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: RubyInline
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.13.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Davis
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain:
|
11
11
|
- |
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
|
-
|
13
|
+
MIIDPjCCAiagAwIBAgIBBzANBgkqhkiG9w0BAQsFADBFMRMwEQYDVQQDDApyeWFu
|
14
14
|
ZC1ydWJ5MRkwFwYKCZImiZPyLGQBGRYJemVuc3BpZGVyMRMwEQYKCZImiZPyLGQB
|
15
|
-
|
15
|
+
GRYDY29tMB4XDTIzMDEwMTA3NTExN1oXDTI0MDEwMTA3NTExN1owRTETMBEGA1UE
|
16
16
|
AwwKcnlhbmQtcnVieTEZMBcGCgmSJomT8ixkARkWCXplbnNwaWRlcjETMBEGCgmS
|
17
17
|
JomT8ixkARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALda
|
18
18
|
b9DCgK+627gPJkB6XfjZ1itoOQvpqH1EXScSaba9/S2VF22VYQbXU1xQXL/WzCkx
|
@@ -22,14 +22,14 @@ cert_chain:
|
|
22
22
|
qhtV7HJxNKuPj/JFH0D2cswvzznE/a5FOYO68g+YCuFi5L8wZuuM8zzdwjrWHqSV
|
23
23
|
gBEfoTEGr7Zii72cx+sCAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
|
24
24
|
HQYDVR0OBBYEFEfFe9md/r/tj/Wmwpy+MI8d9k/hMA0GCSqGSIb3DQEBCwUAA4IB
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
25
|
+
AQAkg3y+PBnBAPWdxxITm5sPHqdWQgSyCpRA20o4LTuWr8BWhSXBkfQNa7cY6fOn
|
26
|
+
xyM34VPzBFbExv6XOGDfOMFBVaYTHuN9peC/5/umL7kLl+nflXzL2QA7K6LYj5Bg
|
27
|
+
sM574Onr0dZDM6Vn69bzQ7rBIFDfK/OhlPzqKZad4nsdcsVH8ODCiT+ATMIZyz5K
|
28
|
+
WCnNtqlyiWXI8tdTpahDgcUwfcN/oN7v4K8iU5IbLJX6HQ5DKgmKjfb6XyMth16k
|
29
|
+
ROfWo9Uyp8ba/j9eVG14KkYRaLydAY1MNQk2yd3R5CGfeOpD1kttxjoypoUJ2dOG
|
30
|
+
nsNBRuQJ1UfiCG97a6DNm+Fr
|
31
31
|
-----END CERTIFICATE-----
|
32
|
-
date:
|
32
|
+
date: 2023-02-01 00:00:00.000000000 Z
|
33
33
|
dependencies:
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
35
|
name: ZenTest
|
@@ -71,14 +71,14 @@ dependencies:
|
|
71
71
|
requirements:
|
72
72
|
- - "~>"
|
73
73
|
- !ruby/object:Gem::Version
|
74
|
-
version: '
|
74
|
+
version: '4.0'
|
75
75
|
type: :development
|
76
76
|
prerelease: false
|
77
77
|
version_requirements: !ruby/object:Gem::Requirement
|
78
78
|
requirements:
|
79
79
|
- - "~>"
|
80
80
|
- !ruby/object:Gem::Version
|
81
|
-
version: '
|
81
|
+
version: '4.0'
|
82
82
|
description: |-
|
83
83
|
Inline allows you to write foreign code within your ruby code. It
|
84
84
|
automatically determines if the code in question has changed and
|
@@ -112,8 +112,10 @@ files:
|
|
112
112
|
homepage: http://www.zenspider.com/ZSS/Products/RubyInline/
|
113
113
|
licenses:
|
114
114
|
- MIT
|
115
|
-
metadata:
|
116
|
-
|
115
|
+
metadata:
|
116
|
+
homepage_uri: http://www.zenspider.com/ZSS/Products/RubyInline/
|
117
|
+
source_code_uri: https://github.com/seattlerb/rubyinline
|
118
|
+
post_install_message:
|
117
119
|
rdoc_options:
|
118
120
|
- "--main"
|
119
121
|
- README.txt
|
@@ -131,8 +133,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
131
133
|
version: '0'
|
132
134
|
requirements:
|
133
135
|
- A POSIX environment and a compiler for your language.
|
134
|
-
rubygems_version: 3.
|
135
|
-
signing_key:
|
136
|
+
rubygems_version: 3.4.3
|
137
|
+
signing_key:
|
136
138
|
specification_version: 4
|
137
139
|
summary: Inline allows you to write foreign code within your ruby code
|
138
140
|
test_files: []
|
metadata.gz.sig
CHANGED
@@ -1 +1,2 @@
|
|
1
|
-
|
1
|
+
�^�����AV?���������"I:YZHvp*������������J�=��D��2A��F"��kS��H(9�X��Ikt0M
|
2
|
+
�J��������N��Zu����x�T�1LG�&�
|