[前][次][番号順一覧][スレッド一覧]

ruby-changes:68543

From: Nobuyoshi <ko1@a...>
Date: Wed, 20 Oct 2021 11:22:49 +0900 (JST)
Subject: [ruby-changes:68543] 0c15752556 (master): Use `RUBY_FUNCTION_NAME_STRING` for old Visual C++

https://git.ruby-lang.org/ruby.git/commit/?id=0c15752556

From 0c15752556513f99c5275c8ca05808221eb56248 Mon Sep 17 00:00:00 2001
From: Nobuyoshi Nakada <nobu@r...>
Date: Sun, 3 Oct 2021 16:22:53 +0900
Subject: Use `RUBY_FUNCTION_NAME_STRING` for old Visual C++

Probably `__func__` is supported since Visual C++ 2015 (= 14.0,
`_MSC_VER` = 1900).
---
 ractor.c   |  6 +++---
 vm_debug.h | 12 +++++++-----
 2 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/ractor.c b/ractor.c
index 0a9033c5b6..bfc61f99fe 100644
--- a/ractor.c
+++ b/ractor.c
@@ -413,7 +413,7 @@ ractor_queue_enq(rb_ractor_t *r, struct rb_ractor_queue *rq, struct rb_ractor_ba https://github.com/ruby/ruby/blob/trunk/ractor.c#L413
         rq->size *= 2;
     }
     rq->baskets[(rq->start + rq->cnt++) % rq->size] = *basket;
-    // fprintf(stderr, "%s %p->cnt:%d\n", __func__, (void *)rq, rq->cnt);
+    // fprintf(stderr, "%s %p->cnt:%d\n", RUBY_FUNCTION_NAME_STRING, (void *)rq, rq->cnt);
 }
 
 static void
@@ -502,7 +502,7 @@ ractor_wakeup(rb_ractor_t *r, enum ractor_wait_status wait_status, enum ractor_w https://github.com/ruby/ruby/blob/trunk/ractor.c#L502
 {
     ASSERT_ractor_locking(r);
 
-    // fprintf(stderr, "%s r:%p status:%s/%s wakeup_status:%s/%s\n", __func__, (void *)r,
+    // fprintf(stderr, "%s r:%p status:%s/%s wakeup_status:%s/%s\n", RUBY_FUNCTION_NAME_STRING, (void *)r,
     //         wait_status_str(r->sync.wait.status), wait_status_str(wait_status),
     //         wakeup_status_str(r->sync.wait.wakeup_status), wakeup_status_str(wakeup_status));
 
@@ -582,7 +582,7 @@ ractor_sleep(rb_execution_context_t *ec, rb_ractor_t *cr) https://github.com/ruby/ruby/blob/trunk/ractor.c#L582
 {
     VM_ASSERT(GET_RACTOR() == cr);
     VM_ASSERT(cr->sync.wait.status != wait_none);
-    // fprintf(stderr, "%s  r:%p status:%s, wakeup_status:%s\n", __func__, (void *)cr,
+    // fprintf(stderr, "%s  r:%p status:%s, wakeup_status:%s\n", RUBY_FUNCTION_NAME_STRING, (void *)cr,
     //                 wait_status_str(cr->sync.wait.status), wakeup_status_str(cr->sync.wait.wakeup_status));
 
     RACTOR_UNLOCK(cr);
diff --git a/vm_debug.h b/vm_debug.h
index a2647273a0..d8f4fcbe24 100644
--- a/vm_debug.h
+++ b/vm_debug.h
@@ -94,18 +94,20 @@ bool ruby_debug_log_filter(const char *func_name); https://github.com/ruby/ruby/blob/trunk/vm_debug.h#L94
 
 // convenient macro to log even if the USE_RUBY_DEBUG_LOG macro is not specified.
 // You can use this macro for temporary usage (you should not commit it).
-#define _RUBY_DEBUG_LOG(...) ruby_debug_log(__FILE__, __LINE__, __func__, "" __VA_ARGS__)
+#define _RUBY_DEBUG_LOG(...) ruby_debug_log(__FILE__, __LINE__, RUBY_FUNCTION_NAME_STRING, "" __VA_ARGS__)
 
 #if USE_RUBY_DEBUG_LOG
+# define RUBY_DEBUG_LOG_ENABLED(func_name) \
+    (ruby_debug_log_mode && ruby_debug_log_filter(func_name))
 
 #define RUBY_DEBUG_LOG(...) do { \
-  if (ruby_debug_log_mode && ruby_debug_log_filter(__func__)) \
-    ruby_debug_log(__FILE__, __LINE__, __func__, "" __VA_ARGS__); \
+    if (RUBY_DEBUG_LOG_ENABLED(RUBY_FUNCTION_NAME_STRING)) \
+        ruby_debug_log(__FILE__, __LINE__, RUBY_FUNCTION_NAME_STRING, "" __VA_ARGS__); \
 } while (0)
 
 #define RUBY_DEBUG_LOG2(file, line, ...) do { \
-  if (ruby_debug_log_mode && ruby_debug_log_filter(__func__)) \
-    ruby_debug_log(file, line, __func__, "" __VA_ARGS__); \
+    if (RUBY_DEBUG_LOG_ENABLED(RUBY_FUNCTION_NAME_STRING)) \
+        ruby_debug_log(file, line, RUBY_FUNCTION_NAME_STRING, "" __VA_ARGS__); \
 } while (0)
 
 #else
-- 
cgit v1.2.1


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]