bleak_house 4.3 → 4.4
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.
- 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
|