1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
| | # -*- encoding: binary -*-
require 'mkmf'
unless RUBY_VERSION < '3.1'
warn "Unicorn was only tested against MRI up to 3.0.\n" \
"It might not properly work with #{RUBY_VERSION}"
end
have_func("rb_hash_clear", "ruby.h") or abort 'Ruby 2.0+ required'
message('checking if String#-@ (str_uminus) dedupes... ')
begin
a = -(%w(t e s t).join)
b = -(%w(t e s t).join)
if a.equal?(b)
$CPPFLAGS += ' -DSTR_UMINUS_DEDUPE=1 '
message("yes\n")
else
$CPPFLAGS += ' -DSTR_UMINUS_DEDUPE=0 '
message("no, needs Ruby 2.5+\n")
end
rescue NoMethodError
$CPPFLAGS += ' -DSTR_UMINUS_DEDUPE=0 '
message("no, String#-@ not available\n")
end
message('checking if Hash#[]= (rb_hash_aset) dedupes... ')
h = {}
x = {}
r = rand.to_s
h[%W(#{r}).join('')] = :foo
x[%W(#{r}).join('')] = :foo
if x.keys[0].equal?(h.keys[0])
$CPPFLAGS += ' -DHASH_ASET_DEDUPE=1 '
message("yes\n")
else
$CPPFLAGS += ' -DHASH_ASET_DEDUPE=0 '
message("no, needs Ruby 2.6+\n")
end
create_makefile("unicorn_http")
|