bleak_house 4.3 → 4.4
Sign up to get free protection for your applications and to get access to all the features.
- data.tar.gz.sig +0 -0
- data/CHANGELOG +2 -0
- data/Manifest +11 -11
- data/README +8 -4
- data/bleak_house.gemspec +4 -4
- data/ext/build_ruby.rb +15 -31
- data/lib/bleak_house.rb +1 -1
- data/lib/bleak_house/hook.rb +1 -0
- data/ruby/{ruby-1.8.6-openssl.patch → openssl.patch} +0 -0
- data/ruby/ruby-1.8.7-p174.tar.bz2 +0 -0
- data/ruby/{ruby.patch → ruby187.patch} +76 -87
- data/test/unit/test_bleak_house.rb +1 -1
- metadata +15 -15
- metadata.gz.sig +0 -0
- data/ruby/ruby-1.8.6-p286.tar.bz2 +0 -0
data.tar.gz.sig
CHANGED
Binary file
|
data/CHANGELOG
CHANGED
data/Manifest
CHANGED
@@ -1,23 +1,23 @@
|
|
1
|
-
bin/bleak
|
2
1
|
CHANGELOG
|
2
|
+
LICENSE
|
3
|
+
LICENSE_BSD
|
4
|
+
Manifest
|
5
|
+
README
|
6
|
+
Rakefile
|
7
|
+
TODO
|
8
|
+
bin/bleak
|
3
9
|
ext/build_ruby.rb
|
4
10
|
ext/build_snapshot.rb
|
5
11
|
ext/extconf.rb
|
6
12
|
ext/snapshot.c
|
7
13
|
ext/snapshot.h
|
14
|
+
lib/bleak_house.rb
|
8
15
|
lib/bleak_house/analyzer.rb
|
9
16
|
lib/bleak_house/hook.rb
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
Manifest
|
14
|
-
Rakefile
|
15
|
-
README
|
16
|
-
ruby/ruby-1.8.6-openssl.patch
|
17
|
-
ruby/ruby-1.8.6-p286.tar.bz2
|
18
|
-
ruby/ruby.patch
|
17
|
+
ruby/openssl.patch
|
18
|
+
ruby/ruby-1.8.7-p174.tar.bz2
|
19
|
+
ruby/ruby187.patch
|
19
20
|
ruby/valgrind.patch
|
20
21
|
test/benchmark/bench.rb
|
21
22
|
test/test_helper.rb
|
22
23
|
test/unit/test_bleak_house.rb
|
23
|
-
TODO
|
data/README
CHANGED
@@ -1,7 +1,11 @@
|
|
1
1
|
|
2
2
|
BleakHouse
|
3
3
|
|
4
|
-
A library for finding memory leaks.
|
4
|
+
A library for finding memory leaks. Patched for Ruby 1.8.7p72.
|
5
|
+
|
6
|
+
An experiment.
|
7
|
+
Run git clone and then rake gem;
|
8
|
+
gem install bleak_house
|
5
9
|
|
6
10
|
== License
|
7
11
|
|
@@ -22,7 +26,7 @@ If you use this software, please {make a donation}[http://blog.evanweaver.com/do
|
|
22
26
|
== Requirements
|
23
27
|
|
24
28
|
* A unix-like operating system
|
25
|
-
* Ruby 1.8.
|
29
|
+
* Ruby 1.8.7
|
26
30
|
|
27
31
|
= Usage
|
28
32
|
|
@@ -31,7 +35,7 @@ If you use this software, please {make a donation}[http://blog.evanweaver.com/do
|
|
31
35
|
Install the gem:
|
32
36
|
sudo gem install bleak_house
|
33
37
|
|
34
|
-
The installation takes a long time because it compiles a patched Ruby binary for you. It is installed as <tt>ruby-bleak-house</tt> alongside your regular <tt>ruby</tt> binary.
|
38
|
+
The installation takes a long time because it compiles a patched Ruby 1.8.7 binary for you. It is installed as <tt>ruby-bleak-house</tt> alongside your regular <tt>ruby</tt> binary.
|
35
39
|
|
36
40
|
Please see the forum ( http://rubyforge.org/forum/forum.php?forum_id=13983 ) if you have installation problems.
|
37
41
|
|
@@ -52,7 +56,7 @@ Exercise your app. After a couple hundred requests, hit CTRL-C. The server will
|
|
52
56
|
|
53
57
|
** BleakHouse: working...
|
54
58
|
** BleakHouse: complete
|
55
|
-
** Bleakhouse: run 'bleak /tmp/bleak.5979.
|
59
|
+
** Bleakhouse: run 'bleak /tmp/bleak.5979.000.dump' to analyze.
|
56
60
|
|
57
61
|
To analyze it, just run the listed command. The top 20 leakiest lines will be listed:
|
58
62
|
|
data/bleak_house.gemspec
CHANGED
@@ -2,19 +2,19 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{bleak_house}
|
5
|
-
s.version = "4.
|
5
|
+
s.version = "4.4"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Evan Weaver"]
|
9
9
|
s.cert_chain = ["/Users/eweaver/p/configuration/gem_certificates/evan_weaver-original-public_cert.pem"]
|
10
|
-
s.date = %q{2009-
|
10
|
+
s.date = %q{2009-09-02}
|
11
11
|
s.default_executable = %q{bleak}
|
12
12
|
s.description = %q{A library for finding memory leaks.}
|
13
13
|
s.email = %q{}
|
14
14
|
s.executables = ["bleak"]
|
15
15
|
s.extensions = ["ext/extconf.rb"]
|
16
|
-
s.extra_rdoc_files = ["CHANGELOG", "ext/snapshot.c", "lib/bleak_house
|
17
|
-
s.files = ["
|
16
|
+
s.extra_rdoc_files = ["CHANGELOG", "LICENSE", "LICENSE_BSD", "README", "TODO", "ext/snapshot.c", "lib/bleak_house.rb", "lib/bleak_house/analyzer.rb", "lib/bleak_house/hook.rb"]
|
17
|
+
s.files = ["CHANGELOG", "LICENSE", "LICENSE_BSD", "Manifest", "README", "Rakefile", "TODO", "bin/bleak", "ext/build_ruby.rb", "ext/build_snapshot.rb", "ext/extconf.rb", "ext/snapshot.c", "ext/snapshot.h", "lib/bleak_house.rb", "lib/bleak_house/analyzer.rb", "lib/bleak_house/hook.rb", "ruby/openssl.patch", "ruby/ruby-1.8.7-p174.tar.bz2", "ruby/ruby187.patch", "ruby/valgrind.patch", "test/benchmark/bench.rb", "test/test_helper.rb", "test/unit/test_bleak_house.rb", "bleak_house.gemspec"]
|
18
18
|
s.homepage = %q{http://blog.evanweaver.com/files/doc/fauna/bleak_house/}
|
19
19
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Bleak_house", "--main", "README"]
|
20
20
|
s.require_paths = ["lib", "ext"]
|
data/ext/build_ruby.rb
CHANGED
@@ -5,8 +5,8 @@ if RUBY_PLATFORM =~ /win32|windows/
|
|
5
5
|
raise "Windows is not supported."
|
6
6
|
end
|
7
7
|
|
8
|
-
unless RUBY_VERSION == '1.8.
|
9
|
-
raise "Wrong Ruby version, you're at '#{RUBY_VERSION}', need 1.8.
|
8
|
+
unless RUBY_VERSION == '1.8.7'
|
9
|
+
raise "Wrong Ruby version, you're at '#{RUBY_VERSION}', need 1.8.7"
|
10
10
|
end
|
11
11
|
|
12
12
|
source_dir = File.expand_path(File.dirname(__FILE__)) + "/../ruby"
|
@@ -32,7 +32,7 @@ def which(basename)
|
|
32
32
|
end
|
33
33
|
|
34
34
|
if which('ruby-bleak-house') and
|
35
|
-
(patchlevel = `ruby-bleak-house -e "puts RUBY_PATCHLEVEL"`.to_i) >=
|
35
|
+
(patchlevel = `ruby-bleak-house -e "puts RUBY_PATCHLEVEL"`.to_i) >= 904
|
36
36
|
puts "** Binary `ruby-bleak-house` is already available (patchlevel #{patchlevel})"
|
37
37
|
else
|
38
38
|
# Build
|
@@ -50,41 +50,29 @@ else
|
|
50
50
|
Dir.chdir(build_dir) do
|
51
51
|
|
52
52
|
puts "** Copy Ruby source"
|
53
|
-
bz2 = "ruby-1.8.
|
53
|
+
bz2 = "ruby-1.8.7-p174.tar.bz2"
|
54
54
|
FileUtils.copy "#{source_dir}/#{bz2}", bz2
|
55
55
|
|
56
56
|
puts "** Extract"
|
57
57
|
execute("tar xjf #{bz2}")
|
58
58
|
File.delete bz2
|
59
59
|
|
60
|
-
Dir.chdir("ruby-1.8.
|
60
|
+
Dir.chdir("ruby-1.8.7-p174") do
|
61
61
|
|
62
62
|
puts "** Patch Ruby"
|
63
|
-
execute("patch -
|
64
|
-
|
65
|
-
puts "** Determining OpenSSL version"
|
66
|
-
cmd = open("|openssl version")
|
67
|
-
openssl_version_string = cmd.gets
|
68
|
-
cmd.close
|
69
|
-
|
70
|
-
if openssl_version_string.nil?
|
71
|
-
puts "** Could not determine openssl version, skipping patches"
|
72
|
-
else
|
73
|
-
openssl_version = openssl_version_string.split(/\s/)[1]
|
74
|
-
if openssl_version >= "0.9.8j"
|
75
|
-
puts "** Applying openssl patches to build against #{openssl_version_string}"
|
76
|
-
execute( "patch -p3 < '#{source_dir}/ruby-1.8.6-openssl.patch'")
|
77
|
-
else
|
78
|
-
puts "** No patching need for #{openssl_version_string}"
|
79
|
-
end
|
80
|
-
end
|
63
|
+
execute("patch -p1 < '#{source_dir}/ruby187.patch'")
|
81
64
|
|
82
65
|
env = Config::CONFIG.map do |key, value|
|
83
66
|
"#{key}=#{value.inspect}" if key.upcase == key and value
|
84
67
|
end.compact.join(" ")
|
85
68
|
|
86
69
|
puts "** Configure"
|
87
|
-
|
70
|
+
|
71
|
+
args = Config::CONFIG['configure_args']
|
72
|
+
args.sub("'--enable-shared'", "")
|
73
|
+
args << " --disable-shared"
|
74
|
+
args << " --enable-valgrind" if which("valgrind")
|
75
|
+
execute("env #{env} ./configure #{args}")
|
88
76
|
|
89
77
|
puts "Patch Makefile"
|
90
78
|
# FIXME Why is this necessary?
|
@@ -118,13 +106,9 @@ else
|
|
118
106
|
ruby_binary = Config::CONFIG["RUBY_INSTALL_NAME"] || "ruby"
|
119
107
|
|
120
108
|
puts "** Install binary"
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
exec("cp ./#{ruby_binary} #{bleak_binary}; chmod 755 #{bleak_binary}")
|
125
|
-
else
|
126
|
-
raise
|
127
|
-
end
|
109
|
+
raise unless File.exist? ruby_binary
|
110
|
+
File.delete bleak_binary if File.exist? bleak_binary # Avoid "Text file busy" error
|
111
|
+
exec("cp ./#{ruby_binary} #{bleak_binary}; chmod 755 #{bleak_binary}")
|
128
112
|
end
|
129
113
|
|
130
114
|
end
|
data/lib/bleak_house.rb
CHANGED
data/lib/bleak_house/hook.rb
CHANGED
File without changes
|
Binary file
|
@@ -1,55 +1,40 @@
|
|
1
|
-
diff
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
diff --git a/Makefile.in b/Makefile.in
|
2
|
+
index a37bcf6..52f723c 100644
|
3
|
+
--- a/Makefile.in
|
4
|
+
+++ b/Makefile.in
|
5
|
+
@@ -34,7 +34,7 @@ RIDATADIR = $(DESTDIR)$(datadir)/ri/$(MAJOR).$(MINOR)/system
|
5
6
|
|
6
7
|
empty =
|
7
8
|
OUTFLAG = @OUTFLAG@$(empty)
|
8
9
|
-CFLAGS = @CFLAGS@ @XCFLAGS@ @ARCH_FLAG@
|
9
10
|
+CFLAGS = @CFLAGS@ @XCFLAGS@ @ARCH_FLAG@ @VALGRIND_CFLAGS@
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
diff
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
11
|
+
cflags = @cflags@
|
12
|
+
optflags = @optflags@
|
13
|
+
debugflags = @debugflags@
|
14
|
+
diff --git a/configure b/configure
|
15
|
+
index faf2b45..16287ca 100755
|
16
|
+
--- a/configure
|
17
|
+
+++ b/configure
|
18
|
+
@@ -724,6 +724,7 @@ cflags
|
19
|
+
optflags
|
20
|
+
debugflags
|
19
21
|
XCFLAGS
|
20
22
|
+VALGRIND_CFLAGS
|
21
23
|
XLDFLAGS
|
22
24
|
LIBRUBY_LDSHARED
|
23
25
|
LIBRUBY_DLDFLAGS
|
24
|
-
@@ -
|
25
|
-
--enable-pthread use pthread library.
|
26
|
-
--disable-fastthread do not use the fastthread mutex
|
26
|
+
@@ -1353,6 +1354,7 @@ Optional Features:
|
27
27
|
--enable-setreuid use setreuid()/setregid() according to need even if obsolete.
|
28
|
-
+ --enable-valgrind use valgrind support
|
29
28
|
--disable-rpath embed run path into extension libraries.
|
30
29
|
--enable-shared build a shared library for Ruby.
|
30
|
+
+ --enable-valgrind Use valgrind support
|
31
31
|
--enable-install-doc build and install rdoc indexes during install
|
32
|
-
|
33
|
-
|
34
|
-
cat >>conftest.$ac_ext
|
35
|
-
/* end confdefs.h. */
|
36
|
-
-#include <sys/types.h> /* for off_t */
|
37
|
-
- #include <stdio.h>
|
38
|
-
+#include <stdio.h>
|
39
|
-
int
|
40
|
-
main ()
|
41
|
-
{
|
42
|
-
-int (*fp) (FILE *, off_t, int) = fseeko;
|
43
|
-
- return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
|
44
|
-
+return fseeko (stdin, 0, 0) && (fseeko) (stdin, 0, 0);
|
45
|
-
;
|
46
|
-
return 0;
|
47
|
-
}
|
48
|
-
@@ -13036,13 +13036,11 @@
|
32
|
+
|
33
|
+
Optional Packages:
|
34
|
+
@@ -13012,12 +13014,11 @@ cat confdefs.h >>conftest.$ac_ext
|
49
35
|
cat >>conftest.$ac_ext <<_ACEOF
|
50
36
|
/* end confdefs.h. */
|
51
|
-
#
|
52
|
-
-#include <sys/types.h> /* for off_t */
|
37
|
+
#include <sys/types.h> /* for off_t */
|
53
38
|
- #include <stdio.h>
|
54
39
|
+#include <stdio.h>
|
55
40
|
int
|
@@ -61,7 +46,7 @@ diff -u configure configure
|
|
61
46
|
;
|
62
47
|
return 0;
|
63
48
|
}
|
64
|
-
@@ -
|
49
|
+
@@ -16462,6 +16463,173 @@ done
|
65
50
|
fi
|
66
51
|
fi
|
67
52
|
|
@@ -230,31 +215,33 @@ diff -u configure configure
|
|
230
215
|
+ VALGRIND_CFLAGS="";
|
231
216
|
+ fi
|
232
217
|
+fi
|
218
|
+
+
|
233
219
|
+
|
234
220
|
DEFAULT_KCODE="KCODE_NONE"
|
235
221
|
|
236
222
|
|
237
|
-
@@ -
|
238
|
-
|
239
|
-
|
223
|
+
@@ -18588,6 +18756,7 @@ cflags!$cflags$ac_delim
|
224
|
+
optflags!$optflags$ac_delim
|
225
|
+
debugflags!$debugflags$ac_delim
|
240
226
|
XCFLAGS!$XCFLAGS$ac_delim
|
241
227
|
+VALGRIND_CFLAGS!$VALGRIND_CFLAGS$ac_delim
|
242
228
|
XLDFLAGS!$XLDFLAGS$ac_delim
|
243
229
|
LIBRUBY_LDSHARED!$LIBRUBY_LDSHARED$ac_delim
|
244
230
|
LIBRUBY_DLDFLAGS!$LIBRUBY_DLDFLAGS$ac_delim
|
245
|
-
@@ -
|
231
|
+
@@ -18622,7 +18791,7 @@ MANTYPE!$MANTYPE$ac_delim
|
246
232
|
LTLIBOBJS!$LTLIBOBJS$ac_delim
|
247
233
|
_ACEOF
|
248
234
|
|
249
|
-
- if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` =
|
250
|
-
+ if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` =
|
235
|
+
- if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 47; then
|
236
|
+
+ if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 48; then
|
251
237
|
break
|
252
238
|
elif $ac_last_try; then
|
253
239
|
{ { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
|
254
|
-
diff
|
255
|
-
|
256
|
-
|
257
|
-
|
240
|
+
diff --git a/configure.in b/configure.in
|
241
|
+
index fe63c0c..e0cdcdd 100644
|
242
|
+
--- a/configure.in
|
243
|
+
+++ b/configure.in
|
244
|
+
@@ -1043,6 +1043,23 @@ if test x"$ac_cv_header_ucontext_h" = xyes; then
|
258
245
|
fi
|
259
246
|
fi
|
260
247
|
|
@@ -273,21 +260,23 @@ diff -u configure.in configure.in
|
|
273
260
|
+ VALGRIND_CFLAGS="";
|
274
261
|
+ fi
|
275
262
|
+fi
|
263
|
+
+
|
276
264
|
+
|
277
265
|
dnl default value for $KANJI
|
278
266
|
DEFAULT_KCODE="KCODE_NONE"
|
279
267
|
|
280
|
-
@@ -
|
281
|
-
|
282
|
-
|
268
|
+
@@ -1663,6 +1680,7 @@ AC_SUBST(cflags, ['${optflags} ${debugflags}'])dnl
|
269
|
+
AC_SUBST(optflags)dnl
|
270
|
+
AC_SUBST(debugflags)dnl
|
283
271
|
AC_SUBST(XCFLAGS)dnl
|
284
272
|
+AC_SUBST(VALGRIND_CFLAGS)dnl
|
285
273
|
AC_SUBST(XLDFLAGS)dnl
|
286
274
|
AC_SUBST(LIBRUBY_LDSHARED)
|
287
275
|
AC_SUBST(LIBRUBY_DLDFLAGS)
|
288
|
-
diff
|
289
|
-
|
290
|
-
|
276
|
+
diff --git a/eval.c b/eval.c
|
277
|
+
index 11264f7..09ec7a6 100644
|
278
|
+
--- a/eval.c
|
279
|
+
+++ b/eval.c
|
291
280
|
@@ -28,6 +28,12 @@
|
292
281
|
#define EXIT_FAILURE 1
|
293
282
|
#endif
|
@@ -301,7 +290,7 @@ diff -u eval.c eval.c
|
|
301
290
|
#include <stdio.h>
|
302
291
|
|
303
292
|
#include "st.h"
|
304
|
-
@@ -
|
293
|
+
@@ -5290,6 +5296,9 @@ assign(self, lhs, val, pcall)
|
305
294
|
int pcall;
|
306
295
|
{
|
307
296
|
ruby_current_node = lhs;
|
@@ -311,9 +300,10 @@ diff -u eval.c eval.c
|
|
311
300
|
if (val == Qundef) {
|
312
301
|
rb_warning("assigning void value");
|
313
302
|
val = Qnil;
|
314
|
-
diff
|
315
|
-
|
316
|
-
|
303
|
+
diff --git a/gc.c b/gc.c
|
304
|
+
index 45facf0..933b76e 100644
|
305
|
+
--- a/gc.c
|
306
|
+
+++ b/gc.c
|
317
307
|
@@ -30,6 +30,12 @@
|
318
308
|
#include <sys/resource.h>
|
319
309
|
#endif
|
@@ -327,7 +317,7 @@ diff -u gc.c gc.c
|
|
327
317
|
#if defined _WIN32 || defined __CYGWIN__
|
328
318
|
#include <windows.h>
|
329
319
|
#endif
|
330
|
-
@@ -
|
320
|
+
@@ -138,6 +144,9 @@ ruby_xmalloc(size)
|
331
321
|
{
|
332
322
|
void *mem;
|
333
323
|
|
@@ -337,7 +327,7 @@ diff -u gc.c gc.c
|
|
337
327
|
if (size < 0) {
|
338
328
|
rb_raise(rb_eNoMemError, "negative allocation size (or too big)");
|
339
329
|
}
|
340
|
-
@@ -
|
330
|
+
@@ -297,8 +306,6 @@ rb_gc_unregister_address(addr)
|
341
331
|
}
|
342
332
|
}
|
343
333
|
|
@@ -346,7 +336,7 @@ diff -u gc.c gc.c
|
|
346
336
|
void
|
347
337
|
rb_global_variable(var)
|
348
338
|
VALUE *var;
|
349
|
-
@@ -
|
339
|
+
@@ -333,10 +340,8 @@ typedef struct RVALUE {
|
350
340
|
struct RVarmap varmap;
|
351
341
|
struct SCOPE scope;
|
352
342
|
} as;
|
@@ -357,7 +347,7 @@ diff -u gc.c gc.c
|
|
357
347
|
} RVALUE;
|
358
348
|
|
359
349
|
#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__CYGWIN__)
|
360
|
-
@@ -
|
350
|
+
@@ -355,6 +360,22 @@ static struct heaps_slot {
|
361
351
|
static int heaps_length = 0;
|
362
352
|
static int heaps_used = 0;
|
363
353
|
|
@@ -380,19 +370,19 @@ diff -u gc.c gc.c
|
|
380
370
|
#define HEAP_MIN_SLOTS 10000
|
381
371
|
static int heap_slots = HEAP_MIN_SLOTS;
|
382
372
|
|
383
|
-
@@ -
|
373
|
+
@@ -442,6 +463,11 @@ rb_newobj()
|
384
374
|
RANY(obj)->file = ruby_sourcefile;
|
385
375
|
RANY(obj)->line = ruby_sourceline;
|
386
376
|
#endif
|
377
|
+
+
|
387
378
|
+ if (ruby_current_node && ruby_current_node->nd_file) {
|
388
379
|
+ RANY(obj)->file = ruby_current_node->nd_file;
|
389
380
|
+ RANY(obj)->line = nd_line(ruby_current_node);
|
390
381
|
+ }
|
391
|
-
+
|
392
382
|
return obj;
|
393
383
|
}
|
394
384
|
|
395
|
-
@@ -
|
385
|
+
@@ -678,6 +704,9 @@ mark_locations_array(x, n)
|
396
386
|
register long n;
|
397
387
|
{
|
398
388
|
VALUE v;
|
@@ -402,7 +392,7 @@ diff -u gc.c gc.c
|
|
402
392
|
while (n--) {
|
403
393
|
v = *x;
|
404
394
|
if (is_pointer_to_heap((void *)v)) {
|
405
|
-
@@ -
|
395
|
+
@@ -768,12 +797,18 @@ gc_mark(ptr, lev)
|
406
396
|
{
|
407
397
|
register RVALUE *obj;
|
408
398
|
|
@@ -413,17 +403,19 @@ diff -u gc.c gc.c
|
|
413
403
|
if (rb_special_const_p(ptr)) return; /* special const not marked */
|
414
404
|
if (obj->as.basic.flags == 0) return; /* free cell */
|
415
405
|
if (obj->as.basic.flags & FL_MARK) return; /* already marked */
|
416
|
-
+
|
417
406
|
obj->as.basic.flags |= FL_MARK;
|
407
|
+
|
418
408
|
+ /* mark our new reference point for sourcefile objects */
|
419
409
|
+ mark_source_filename(RANY(obj)->file);
|
420
|
-
|
410
|
+
+
|
421
411
|
if (lev > GC_LEVEL_MAX || (lev == 0 && ruby_stack_check())) {
|
422
412
|
if (!mark_stack_overflow) {
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
413
|
+
if (mark_stack_ptr - mark_stack < MARK_STACK_MAX) {
|
414
|
+
diff --git a/parse.c b/parse.c
|
415
|
+
index 6b3d80d..b320cf2 100644
|
416
|
+
--- a/parse.c
|
417
|
+
+++ b/parse.c
|
418
|
+
@@ -11403,6 +11403,11 @@ symbols_i(key, value, ary)
|
427
419
|
* :wait2, :$>]
|
428
420
|
*/
|
429
421
|
|
@@ -435,10 +427,11 @@ diff -u parse.c parse.c
|
|
435
427
|
VALUE
|
436
428
|
rb_sym_all_symbols()
|
437
429
|
{
|
438
|
-
diff
|
439
|
-
|
440
|
-
|
441
|
-
|
430
|
+
diff --git a/parse.y b/parse.y
|
431
|
+
index ab0b83c..3ce1dfb 100644
|
432
|
+
--- a/parse.y
|
433
|
+
+++ b/parse.y
|
434
|
+
@@ -6263,6 +6263,11 @@ symbols_i(key, value, ary)
|
442
435
|
* :wait2, :$>]
|
443
436
|
*/
|
444
437
|
|
@@ -450,15 +443,11 @@ diff -u parse.y parse.y
|
|
450
443
|
VALUE
|
451
444
|
rb_sym_all_symbols()
|
452
445
|
{
|
453
|
-
diff
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
|
459
|
-
|
460
|
-
|
461
|
-
+#define RUBY_PATCHLEVEL 903
|
462
|
-
|
463
|
-
#define RUBY_VERSION_MAJOR 1
|
464
|
-
#define RUBY_VERSION_MINOR 8
|
446
|
+
diff --git a/version.h b/version.h
|
447
|
+
index 70fc28a..76aa188 100644
|
448
|
+
--- a/version.h
|
449
|
+
+++ b/version.h
|
450
|
+
@@ -5,2 +5,2 @@
|
451
|
+
-#define RUBY_PATCHLEVEL 174
|
452
|
+
+#define RUBY_PATCHLEVEL 904
|
453
|
+
|
@@ -11,7 +11,7 @@ require 'bleak_house'
|
|
11
11
|
class BleakHouseTest < Test::Unit::TestCase
|
12
12
|
|
13
13
|
# Match the default hook filename, for convenience
|
14
|
-
FILE = "/tmp/bleak.#{Process.pid}.
|
14
|
+
FILE = "/tmp/bleak.#{Process.pid}.000.dump"
|
15
15
|
|
16
16
|
def setup
|
17
17
|
File.delete FILE rescue nil
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bleak_house
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: "4.
|
4
|
+
version: "4.4"
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Evan Weaver
|
@@ -30,7 +30,7 @@ cert_chain:
|
|
30
30
|
yZ0=
|
31
31
|
-----END CERTIFICATE-----
|
32
32
|
|
33
|
-
date: 2009-
|
33
|
+
date: 2009-09-02 00:00:00 -07:00
|
34
34
|
default_executable:
|
35
35
|
dependencies: []
|
36
36
|
|
@@ -42,38 +42,38 @@ extensions:
|
|
42
42
|
- ext/extconf.rb
|
43
43
|
extra_rdoc_files:
|
44
44
|
- CHANGELOG
|
45
|
+
- LICENSE
|
46
|
+
- LICENSE_BSD
|
47
|
+
- README
|
48
|
+
- TODO
|
45
49
|
- ext/snapshot.c
|
50
|
+
- lib/bleak_house.rb
|
46
51
|
- lib/bleak_house/analyzer.rb
|
47
52
|
- lib/bleak_house/hook.rb
|
48
|
-
|
53
|
+
files:
|
54
|
+
- CHANGELOG
|
49
55
|
- LICENSE
|
50
56
|
- LICENSE_BSD
|
57
|
+
- Manifest
|
51
58
|
- README
|
59
|
+
- Rakefile
|
52
60
|
- TODO
|
53
|
-
files:
|
54
61
|
- bin/bleak
|
55
|
-
- CHANGELOG
|
56
62
|
- ext/build_ruby.rb
|
57
63
|
- ext/build_snapshot.rb
|
58
64
|
- ext/extconf.rb
|
59
65
|
- ext/snapshot.c
|
60
66
|
- ext/snapshot.h
|
67
|
+
- lib/bleak_house.rb
|
61
68
|
- lib/bleak_house/analyzer.rb
|
62
69
|
- lib/bleak_house/hook.rb
|
63
|
-
-
|
64
|
-
-
|
65
|
-
-
|
66
|
-
- Manifest
|
67
|
-
- Rakefile
|
68
|
-
- README
|
69
|
-
- ruby/ruby-1.8.6-openssl.patch
|
70
|
-
- ruby/ruby-1.8.6-p286.tar.bz2
|
71
|
-
- ruby/ruby.patch
|
70
|
+
- ruby/openssl.patch
|
71
|
+
- ruby/ruby-1.8.7-p174.tar.bz2
|
72
|
+
- ruby/ruby187.patch
|
72
73
|
- ruby/valgrind.patch
|
73
74
|
- test/benchmark/bench.rb
|
74
75
|
- test/test_helper.rb
|
75
76
|
- test/unit/test_bleak_house.rb
|
76
|
-
- TODO
|
77
77
|
- bleak_house.gemspec
|
78
78
|
has_rdoc: true
|
79
79
|
homepage: http://blog.evanweaver.com/files/doc/fauna/bleak_house/
|
metadata.gz.sig
CHANGED
Binary file
|
Binary file
|