
    -iX                        d dl mZ d dlZd dlZd dlZd dlZd dlZd dl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mZ 	 	 	 	 ddZdd	Zej*                  dd
       ZddZ	 	 	 d	 	 	 	 	 	 	 ddZy)    )annotationsN)
ModuleType   )get_cache_manager   )knobsc                   t         j                  j                  x}r || |||||      S t        j                  d      }t
        j                  j                  |dj                  | |            }	t
        j                  j                  d      }
|
=t        j                  d      }t        j                  d      }||n|}
|
t        d      t        j                         }|dk(  rd	}t        j                  |
      d   }t         j                  j                   }|||g|z   }|
|ddddd|	g}||D cg c]  }t#        |       c}z  }||D cg c]  }d| 	 c}z  }||D cg c]
  }|d|  c}z  }|j%                  |       t'        j(                  |t&        j*                         |	S c c}w c c}w c c}w )N
EXT_SUFFIXz{name}{suffix})namesuffixCCclanggcczeFailed to find C compiler. Please specify via CC environment variable or set triton.knobs.build.impl.posix_localposix_prefix)schemeincludez-O3z-sharedz-fPICz
-Wno-psabiz-oz-Lz-I)stdout)r   buildimpl	sysconfigget_config_varospathjoinformatenvirongetshutilwhichRuntimeErrorget_default_scheme	get_pathsbackend_dirs_library_flagextend
subprocess
check_callDEVNULL)r   srcsrcdirlibrary_dirsinclude_dirs	librariesccflagsr   r   soccr   r   r   py_include_dircustom_backend_dirscc_cmdlibdirs                      ^/home/obispo/Crisostomo_bridge/mision_env/lib/python3.12/site-packages/triton/runtime/build.py_buildr8      s   {{tD#v|\9MM%%l3F	f.5545O	PB		B	zW%ll5!OS:wy y))+F ((7	BN++226>"P<O"PPL#ui,bIF
Y7c}S!77F
\2cC5z22F
\EcS_C5zEEF
MM'&););<I 82Es   4F2F7&F<.F<c                d    t        j                  d|       s| j                  d      rd|  S d|  S )Nz\.so(\.\d+)*$z.az-l:z-l)researchendswith)r5   s    r7   r%   r%   4   s4    	yy!3'3<<+=SE{u:    c                 ^    ddl m} m}m} dj	                   |         |       g |             S )Nr   machinesystemarchitecture,)platformr@   rA   rB   r   r?   s      r7   platform_keyrE   ;   s'    6688WY:<>:;;r=   c                    t         j                  j                  | |      }|r|j                  st	        d|  d|       t         j                  j                  |      }|j                  j                  |       |S )NzFailed to load newly compiled z from )	importlibutilspec_from_file_locationloaderr!   module_from_specexec_module)r   r   specmods       r7   _load_module_from_pathrO   A   se    >>11$=Dt{{;D6vNOO
..
)
)$
/CKKC Jr=   c                p   t        j                  | t               z   j                  d            j	                         }t        |      }t        j                  d      }|j                  | |       }	|		 t        ||	      S t!        j"                         5 }t$        j&                  j)                  ||dz         }t+        |d      5 }|j-                  |        d d d        t/        ||||xs g |xs g |xs g |xs g       }t+        |d      5 }|j1                  |j3                         | | d	      }	d d d        d d d        t        ||	      S # t        t        f$ r2 t        j                  t              }
|
j                  d| d       Y w xY w# 1 sw Y   xY w# 1 sw Y   mxY w# 1 sw Y   qxY w)
Nzutf-8r
   z$Triton cache error: compiled module z.so could not be loadedz.cwrbT)binary)hashlibsha256rE   encode	hexdigestr   r   r   get_filerO   r!   ImportErrorlogging	getLogger__name__warningtempfileTemporaryDirectoryr   r   r   openwriter8   putread)r*   r   r,   r-   r.   r/   keycacher   
cache_pathlogtmpdirsrc_pathfr0   s                  r7   compile_module_from_srcrk   J   s    ..#.66w?
@
J
J
LCc"E%%l3F4& 12J	^)$
;;
 
	$	$	& M&77<<t4(C  	AGGCL	D(FL,>B@RPRT]Tcacelerprs"d^ 	Mq1668vfX->tLJ	MM "$
33 k* 	^##H-CKK>tfD[\]	^	 		M 	MM MsN   6E 0F,F5F,'F 4F,=FFF	F, F)	%F,,F5)r   strr*   rl   r+   rl   r,   	list[str]r-   rm   r.   rm   r/   rm   returnrl   )r5   rl   rn   rl   )rn   rl   )r   rl   r   rl   rn   r   )NNNN)r*   rl   r   rl   r,   list[str] | Noner-   ro   r.   ro   r/   ro   rn   r   )
__future__r   	functoolsrT   importlib.utilrG   rZ   r   r   r'   r   r^   r:   typesr   re   r    r   r8   r%   	lru_cacherE   rO   rk    r=   r7   <module>rw      s    "     	     	  $ "%@ < <
 SWae8<4*:4N^4%54AK4r=   