yarv-diff:405
From: ko1 atdot.net
Date: 6 Nov 2006 13:24:45 +0900
Subject: [yarv-diff:405] r573 - in trunk: . rb
Author: ko1
Date: 2006-11-06 13:24:44 +0900 (Mon, 06 Nov 2006)
New Revision: 573
Modified:
trunk/ChangeLog
trunk/iseq.c
trunk/rb/parse.rb
Log:
* iseq.c : fixed GC debugging outputs
* rb/parse.rb : fixed output format
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2006-11-04 00:50:33 UTC (rev 572)
+++ trunk/ChangeLog 2006-11-06 04:24:44 UTC (rev 573)
@@ -4,6 +4,13 @@
# from Mon, 03 May 2004 01:24:19 +0900
#
+2006-11-06(Mon) 13:22:34 +0900 Koichi Sasada <ko1 atdot.net>
+
+ * iseq.c : fixed GC debugging outputs
+
+ * rb/parse.rb : fixed output format
+
+
2006-11-04(Sat) 09:46:50 +0900 Koichi Sasada <ko1 atdot.net>
* compile.c : fix to duplicate "#{'foo'}" string
Modified: trunk/iseq.c
===================================================================
--- trunk/iseq.c 2006-11-04 00:50:33 UTC (rev 572)
+++ trunk/iseq.c 2006-11-06 04:24:44 UTC (rev 573)
@@ -13,6 +13,8 @@
#include "yarvcore.h"
#include "insns.inc"
#include "insns_info.inc"
+
+// #define MARK_FREE_DEBUG 1
#include "gc.h"
static void
@@ -38,8 +40,10 @@
if (ptr) {
iseq = ptr;
- GC_INFO("%s\n", RSTRING_PTR(iseq->name));
-
+ /* It's possible that strings are freed
+ * GC_INFO("%s @ %s\n", RSTRING_PTR(iseq->name),
+ * RSTRING_PTR(iseq->file_name));
+ */
if (iseq->iseq != iseq->iseq_encoded) {
FREE_UNLESS_NULL(iseq->iseq_encoded);
}
@@ -63,7 +67,7 @@
if (ptr) {
iseq = ptr;
- GC_INFO("%s\n", RSTRING_PTR(iseq->name));
+ GC_INFO("%s @ %s\n", RSTRING_PTR(iseq->name), RSTRING_PTR(iseq->file_name));
MARK_UNLESS_NULL(iseq->iseq_mark_ary);
MARK_UNLESS_NULL(iseq->name);
MARK_UNLESS_NULL(iseq->file_name);
Modified: trunk/rb/parse.rb
===================================================================
--- trunk/rb/parse.rb 2006-11-04 00:50:33 UTC (rev 572)
+++ trunk/rb/parse.rb 2006-11-06 04:24:44 UTC (rev 573)
@@ -1,5 +1,13 @@
$file = ARGV[0]
-$str = ARGF.read
+$str = ARGF.read.sub(/^__END__.*\z/m, '')
+puts '# ' + '-' * 70
+puts "# target program: "
+puts '# ' + '-' * 70
puts $str
+puts '# ' + '-' * 70
+
$parsed = YARVCore::InstructionSequence.compile_file($file)
+puts "# disasm result: "
+puts '# ' + '-' * 70
puts $parsed.disasm
+puts '# ' + '-' * 70
--
ML: yarv-diff quickml.atdot.net
Info: http://www.atdot.net/~ko1/quickml