From 4e741baa7b2748138197ffa6a292ab1e669cfb80 Mon Sep 17 00:00:00 2001 From: "Edward A. Lee" Date: Mon, 2 Mar 2026 15:28:51 -0800 Subject: [PATCH 1/2] Added API for user trace events for Python target --- LinguaFrancaBase/classes.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/LinguaFrancaBase/classes.py b/LinguaFrancaBase/classes.py index 5bb82c7..4d2bd16 100644 --- a/LinguaFrancaBase/classes.py +++ b/LinguaFrancaBase/classes.py @@ -27,3 +27,32 @@ def check_deadline(self, invoke_deadline_handler=True): # This idiom is used to invoke C functions bound to the main module and defined # pythontarget.c. return self.lf_module().check_deadline(self, invoke_deadline_handler) + + def register_user_trace_event(self, description: str): + """Register a user trace event for tracing. Enable tracing in the target (e.g. tracing: True). + + Args: + description: Human-readable description of the event. + + Returns: + int: An opaque handle to pass to tracepoint_user_event and tracepoint_user_value. + Returns 0 if tracing is disabled or registration failed. + """ + return self.lf_module().register_user_trace_event(self, description) + + def tracepoint_user_event(self, description_or_handle): + """Record a user-defined trace event at the current logical time. + + Args: + description_or_handle: The handle returned by register_user_trace_event(self, description). + """ + self.lf_module().tracepoint_user_event(self, description_or_handle) + + def tracepoint_user_value(self, description_or_handle, value): + """Record a user-defined trace event with a value at the current logical time. + + Args: + description_or_handle: The handle returned by register_user_trace_event(self, description). + value: Integer value to record (e.g. a count or timestamp). + """ + self.lf_module().tracepoint_user_value(self, description_or_handle, value) From 6a81a90c2a72eacd080baab68ad1a382b046130d Mon Sep 17 00:00:00 2001 From: "Edward A. Lee" Date: Tue, 3 Mar 2026 10:39:41 -0800 Subject: [PATCH 2/2] Response to Copilot reviews --- LinguaFrancaBase/classes.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/LinguaFrancaBase/classes.py b/LinguaFrancaBase/classes.py index 4d2bd16..1a48398 100644 --- a/LinguaFrancaBase/classes.py +++ b/LinguaFrancaBase/classes.py @@ -40,19 +40,19 @@ def register_user_trace_event(self, description: str): """ return self.lf_module().register_user_trace_event(self, description) - def tracepoint_user_event(self, description_or_handle): + def tracepoint_user_event(self, handle): """Record a user-defined trace event at the current logical time. Args: - description_or_handle: The handle returned by register_user_trace_event(self, description). + handle: The handle returned by register_user_trace_event(description). """ - self.lf_module().tracepoint_user_event(self, description_or_handle) + self.lf_module().tracepoint_user_event(self, handle) - def tracepoint_user_value(self, description_or_handle, value): + def tracepoint_user_value(self, handle, value): """Record a user-defined trace event with a value at the current logical time. Args: - description_or_handle: The handle returned by register_user_trace_event(self, description). + handle: The handle returned by register_user_trace_event(description). value: Integer value to record (e.g. a count or timestamp). """ - self.lf_module().tracepoint_user_value(self, description_or_handle, value) + self.lf_module().tracepoint_user_value(self, handle, value)