Ë
    ©š¾j‘  ã                  óÆ   — d Z ddlmZ ddlZddlZddlZddlZddlmZ ddl	m
Z
 ddlZddlZddlmZ ddd„Zej                   dd„«       Zddd	„Zed
k(  r e e«       «      ‚y)zÊRun a Python script under Triton Global Memory Sanitizer.

This module provides a small command-line wrapper runs the wrapped script with GSan enabled, e.g.
    python -m triton.tools.gsan my_script.py
é    )ÚannotationsN)ÚPath)ÚSequence)Úcreate_mem_poolc                ó.  — t        j                  d¬«      }|j                  dd¬«       |j                  dt         j                  d¬«       |j	                  | «      }t        |j                  «      }|d d	 d
gk(  r|d	d  }t        |j                  «      |fS )Nz8Run a Python script with Triton Global Memory Sanitizer.)ÚdescriptionÚscriptzPython script to execute)ÚhelpÚscript_argsz(Arguments forwarded to the target script)Únargsr
   é   z--)	ÚargparseÚArgumentParserÚadd_argumentÚ	REMAINDERÚ
parse_argsÚlistr   r   r	   )ÚargvÚparserÚargsr   s       ú[/home/spazio/kingdom_calls/work5/transenv/lib/python3.12/site-packages/triton/tools/gsan.pyÚ_parse_argsr      s’   € Ü×$Ñ$Ð1kÔl€FØ
×Ñ˜Ð'AÐÔBØ
×Ñ˜¬X×-?Ñ-?ÐFpÐÔqØ×Ñ˜TÓ"€Dä�t×'Ñ'Ó(€KØ�2�A€˜4˜&Ò Ø! ! "�oˆä�—‘Ó˜kÐ)Ð)ó    c              #  óx  K  — t         j                  d d  }t         j                  d d  }t        | «      g|¢t         _        t         j                  j	                  dt        | j
                  «      «       	 | –— |t         _        |t         j                  d d  y # |t         _        |t         j                  d d  w xY w­w)Nr   )Úsysr   ÚpathÚstrÚinsertÚparent)Úscript_pathr   Úoriginal_argvÚoriginal_paths       r   Ú_script_contextr#   "   s‡   è ø€ ä—H‘H™Q�K€MÜ—H‘H™Q�K€Mä�KÓ Ð/ ;Ð/„C„HÜ‡H�H‡O�O�A”s˜;×-Ñ-Ó.Ô/ð$ØÒà ŒŒØ#Œ�‰‘‰øð !ŒŒØ#Œ�‰‘‰üs   ‚A1B:Á4B Á8B:Â B7Â7B:c                ó´  — t        | «      \  }}|j                  «       }|j                  «       st        d|› �«      ‚dt        j
                  j                  _        t        j                  j                  t        «       «      5  t        ||«      5  t        j                  t        |«      d¬«       d d d «       d d d «       y# 1 sw Y   ŒxY w# 1 sw Y   yxY w)NzScript not found: ÚgsanÚ__main__)Úrun_namer   )r   ÚresolveÚis_fileÚFileNotFoundErrorÚtritonÚknobsÚcompilationÚinstrumentation_modeÚtorchÚcudaÚuse_mem_poolr   r#   ÚrunpyÚrun_pathr   )r   r    r   s      r   Úmainr4   0   s±   € Ü*¨4Ó0Ñ€K�à×%Ñ%Ó'€KØ×ÑÔ ÜÐ"4°[°MÐ BÓCÐCà4:„F‡L�L×ÑÔ1ä	�‰×	 Ñ	 ¤Ó!2Ó	3ñ >Ü˜ [Ó1ñ>ä�‰”s˜;Ó'°*Õ=÷>÷ >ð ÷>ð >ú÷ >ð ús$   ÂCÂ!CÂ1CÃC	ÃCÃCr&   )N)r   úSequence[str] | NoneÚreturnztuple[Path, list[str], str])r    r   r   zSequence[str])r   r5   r6   Úint)Ú__doc__Ú
__future__r   r   Ú
contextlibr2   r   Úpathlibr   Útypingr   r+   r/   Ú#triton.experimental.gsan._allocatorr   r   Úcontextmanagerr#   r4   Ú__name__Ú
SystemExit© r   r   ú<module>rB      sj   ðñõ #ã Û Û Û 
Ý Ý ã Û Ý ?ô
*ð ×Ñò
$ó ð
$ôð ˆzÒÙ
‘T“VÓ
Ðð r   