
    P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dS )    )annotationsN)
ModuleType   )get_cache_manager   )knobsnamestrsrcsrcdirlibrary_dirs	list[str]include_dirs	librariesccflagsreturnc                h   t           j        j        x}r || |||||          S t          j        d          }t
          j                            |d                    | |                    }	t
          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 |D             z  }|d |D             z  }|d |D             z  }|                    |           t)          j        |t(          j                   |	S )N
EXT_SUFFIXz{name}{suffix})r	   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-oc                    g | ]}d | S )z-l ).0libs     l/var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/triton/runtime/build.py
<listcomp>z_build.<locals>.<listcomp>/   s    ///czCzz///    c                    g | ]}d | S )z-Lr   r    dirs     r"   r#   z_build.<locals>.<listcomp>0   s    222czCzz222r$   c                    g | ]	}|d| 
S )Nz-Ir   r&   s     r"   r#   z_build.<locals>.<listcomp>1   s    EEEcS_zCzz___r$   )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	   r   r   r   r   r   r   r+   r   soccr   r   r   py_include_dircustom_backend_dirscc_cmds                    r"   _buildrD      s   {t NtD#v|\9MMM%l33F	f.5545OO	P	PB			B	zW%%l5!!OSS:wy y y y.// 1-//.00 (777	BN+26>"P<O"PPL#ui,bIF
//Y////F
22\2222F
EE\EEEEF
MM'&);<<<<Ir$   c                 x    ddl m} m}m} d                     |              |            g |                      S )Nr   machinesystemarchitecture,)platformrG   rH   rI   r0   rF   s      r"   platform_keyrL   7   sN    666666666688WWYY:<<>>:;;;r$   r/   r   c                    t           j                            | |          }|r|j        st	          d|  d|           t           j                            |          }|j                            |           |S )NzFailed to load newly compiled z from )	importlibutilspec_from_file_locationloaderr6   module_from_specexec_module)r	   r/   specmods       r"   _load_module_from_pathrV   =   s{    >11$==D Pt{ PNDNNNNOOO
.
)
)$
/
/CKC   Jr$   list[str] | Nonec           
        t          j        | t                      z                       d                                                    }t          |          }t          j        d          }|                    | |           }	|	Z	 t          ||	          S # t          t          f$ r5 t          j        t                    }
|
                    d| d           Y nw xY wt!          j                    5 }t$          j                            ||dz             }t+          |d          5 }|                    |            d d d            n# 1 swxY w Y   t/          ||||pg |pg |pg |pg           }t+          |d          5 }|                    |                                | | d	          }	d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          ||	          S )
Nzutf-8r   z$Triton cache error: compiled module z.so could not be loadedz.cwrbT)binary)hashlibsha256rL   encode	hexdigestr   r,   r-   get_filerV   r6   ImportErrorlogging	getLogger__name__warningtempfileTemporaryDirectoryr.   r/   r0   openwriterD   putread)r   r	   r   r   r   r   keycacher   
cache_pathlogtmpdirsrc_pathfr?   s                  r"   compile_module_from_srcrs   F   s    .#.66w??
@
@
J
J
L
LCc""E%l33F4 1 1 122J	^)$
;;;k* 	^ 	^ 	^#H--CKK\t\\\]]]]]	^ 
	$	&	& M&7<<t44(C   	AGGCLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	D(FL,>B@RPRT]Tcacelerprss"d^^ 	Mq16688->f->->tLLJ	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	MM M M M M M M M M M M M M M M "$
333sm   B ACC44G(E
>G
E	GE	0G/F=1G=G	GG	GGG)r	   r
   r   r
   r   r
   r   r   r   r   r   r   r   r   r   r
   )r   r
   )r	   r
   r/   r
   r   r   )NNNN)r   r
   r	   r
   r   rW   r   rW   r   rW   r   rW   r   r   )
__future__r   	functoolsr\   importlib.utilrN   rb   r.   r4   r<   r,   rf   typesr   rm   r    r   rD   	lru_cacherL   rV   rs   r   r$   r"   <module>rz      s'   " " " " " "           				                 $ $ $ $ $ $      ! ! ! !H < < < <
    SWae8<4 4 4 4 4 4 4r$   