
    ci                        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mZ ddlmZ ddlm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        t        d      rt        j                         }nt        j                          }|d	k(  rd
}t        j"                  |      d   }t         j                  j$                  }|||g|z   }|
|ddddd|	g}||D cg c]  }d| 	 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.get_default_schemeposix_localposix_prefix)schemeincludez-O3z-sharedz-fPICz
-Wno-psabiz-oz-lz-Lz-I)stdout)r   buildimpl	sysconfigget_config_varospathjoinformatenvirongetshutilwhichRuntimeErrorhasattrr   _get_default_scheme	get_pathsbackend_dirs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                      N/var/www/html/engine/venv/lib/python3.12/site-packages/triton/runtime/build.py_buildr9      s   {{tD#v|\9MM%%l3F	f.5545O	PB		B	zW%ll5!OS:wy y y./--/..0 ((7	BN++226>"P<O"PPL#ui,bIF
Y/cC5z//F
\2cC5z22F
\EcS_C5zEEF
MM'&););<I 02Es   G/GGGc                 ^    ddl m} m}m} dj	                   |         |       g |             S )Nr   machinesystemarchitecture,)platformr<   r=   r>   r   r;   s      r8   platform_keyrA   7   s'    6688WY:<>:;;    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       r8   _load_module_from_pathrL   =   se    >>11$=Dt{{;D6vNOO
..
)
)$
/CKKC JrB   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sha256rA   encode	hexdigestr   r   r   get_filerL   r"   ImportErrorlogging	getLogger__name__warningtempfileTemporaryDirectoryr   r   r   openwriter9   putread)r+   r   r-   r.   r/   r0   keycacher   
cache_pathlogtmpdirsrc_pathfr1   s                  r8   compile_module_from_srcrh   F   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+   ri   r,   ri   r-   	list[str]r.   rj   r/   rj   r0   rj   returnri   )rk   ri   )r   ri   r   ri   rk   r   )NNNN)r+   ri   r   ri   r-   list[str] | Noner.   rl   r/   rl   r0   rl   rk   r   )
__future__r   	functoolsrQ   importlib.utilrD   rW   r   r    r(   r   r[   typesr   rb   r    r   r9   	lru_cacherA   rL   rh    rB   r8   <module>rt      s    "     	      $ !!"%!H < <
 SWae8<4*:4N^4%54AK4rB   